File []无法处理多个文件

时间:2016-01-13 10:46:11

标签: java file

我想从多个目录中读取多个文件。到目前为止,我的程序只能读取多个文件,直到达到一定限

 public void filesTobeCollected(String validpath) throws Exception {
    this.folder = new File(validpath);
    //  this.file = new ArrayList<>();
    File[] fileEntry = folder.listFiles();
    System.out.println("directory path" + fileEntry.length);

    /*****File upload read****/

    for (int i = 0; i < fileEntry.length; i++) {

        /*this line weeds out other directories/folders*/
        if (fileEntry[i].exists()) {

            file.add(String.valueOf(fileEntry[i]));
          }
      }
    }

我通过这个函数发送值目录,

  public List<String> filesTobeTested(ArrayList<String> file) throws   
  Exception {
   Set<String> test = new HashSet<>();
    test.add("src/test/resources/gfd");
    test.add("src/test/resources/rds");
    test.add("src/test/resources/oiu");
    //test.add("src/test/resources/pol");

    System.out.println("directory path 2" + test);

    for (int i = 0; i < 1; i++) {

        for (Iterator<String> it = test.iterator(); it.hasNext(); ) {
            String f = it.next();
            filesTobeCollected(f);
            System.out.println("Found" + f);
        }

这里File [] fileEntry似乎有一些限制,因为我使用test.add推送更多目录(“src / test / resources / obj”)File [] fileEntry无法处理更多文件。 File [] fileEntry的任何替代方案是否包含无限或未知数量的文件?

2 个答案:

答案 0 :(得分:3)

  

File[] fileEntry的任何替代方案是否包含无限量或未知数量的文件?

是的,使用ArrayList<File>将自动处理大小。

但这似乎不是问题,因为您知道在数组创建中需要处理的所有文件,因此大小准确File[] fileEntry = folder.listFiles();

删除此行

for (int i = 0; i < 1; i++) {

似乎有用......如果问题仍然存在,发布您的stacktrace

答案 1 :(得分:1)

我深深地认识到你,你想要收集这些文件。

在我的情况下,我首先建议收集文件路径或文件,并在ArrayList<File>中添加,辅助读取这些文件并在ArrayList<byte[]>中收集,以后如果你想把它变成一个文件,肯定你可以使用ObjectOutputStream类来编写ArrayList<byte[]> Object,当然可以创建一个File

在此期间照看文件阅读&amp;写字节大小不要跨越Java堆空间边界。