Java - 读取文件夹上的许多txt文件并处理它们

时间:2013-07-18 16:35:36

标签: java

我遵循了question

现在在我的情况下,我有720个以这种方式命名的文件:“dom 24 mar 2013_00.50.35_128.txt”,每个文件都有不同的日期和时间。在测试阶段,我使用Scanner和特定的txt文件对其进行一些操作:

  

扫描仪s =新扫描仪(新文件(“stuff.txt”));

我的问题是:

如何重新使用扫描仪并读取所有720个文件而无需在扫描仪上设置准确的名称?

由于

4 个答案:

答案 0 :(得分:14)

假设您在一个地方拥有所有文件:

File dir = new File("path/to/files/");

for (File file : dir.listFiles()) {
    Scanner s = new Scanner(file);
    ...
    s.close();
}

请注意,如果您有任何不想包含的文件,可以listFiles() FileFilter个参数来过滤它们。

答案 1 :(得分:6)

是的,通过将文件对象指向目录来创建文件对象,然后列出该目录的文件。

File dir = new File("Dir/ToYour/Files");

if(dir.isDir()) {
   for(File file : dir.listFiles()) {
      if(file.isFile()) {
         //do stuff on a file
      }
   }
} else {
   //do stuff on a file
}

答案 2 :(得分:3)

你可以这样试试

 File folder = new File("D:\\DestFile");
 File[] listOfFiles = folder.listFiles();

 for (File file : listOfFiles) {
 if (file.isFile()&&(file.getName().substring(file.getName().lastIndexOf('.')+1).equals("txt"))) {
   // Scanner 
  }
 }

答案 3 :(得分:1)

    File file = new File(folderNameFromWhereToRead);

    if(file!=null && file.exists()){
        File[] listOfFiles = file.listFiles();

        if(listOfFiles!=null){

            for (int i = 0; i < listOfFiles.length; i++) {
                if (listOfFiles[i].isFile()) {
                      // DO work
                }
            }
        }
    }