Java - 读取文件夹中的所有.txt文件

tes*_*est 19 java bufferedreader

比方说,我有一个文件夹maps,里面有mapsmap1.txt,map2.txt,map3.txt.如何使用Java和BufferReader读取.txt文件夹maps中的所有文件(如果可能的话)?

And*_*ite 45

像下面这样的东西应该让你去,请注意我使用apache commons FileUtils而不是为了简单而弄乱缓冲区和流...

File folder = new File("/path/to/files");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
  File file = listOfFiles[i];
  if (file.isFile() && file.getName().endsWith(".txt")) {
    String content = FileUtils.readFileToString(file);
    /* do somthing with content */
  } 
}
Run Code Online (Sandbox Code Playgroud)

  • 只是为了记录,`for(文件文件:folder.listFiles())`相当短,更好.:) (4认同)

MBy*_*ByD 22

我会更进一步@Andrew White答案(+1 BTW),并建议您使用FileNameFilter仅列出相关文件:

FilenameFilter filter = new FilenameFilter() {
    public boolean accept(File dir, String name) {
        return name.endsWith(".txt");
    }
};

File folder = new File("/path/to/files");
File[] listOfFiles = folder.listFiles(filter);

for (int i = 0; i < listOfFiles.length; i++) {
    File file = listOfFiles[i];
    String content = FileUtils.readFileToString(file);
    // do something with the file
}
Run Code Online (Sandbox Code Playgroud)


Lok*_*esh 5

    final File folder = new File("C:/Dev Tools/apache-tomcat-6.0.37/webapps/ROOT/somefile");
    for (final File fileEntry : folder.listFiles()) {
           System.out.println("FileEntry Directory "+fileEntry);
Run Code Online (Sandbox Code Playgroud)