Java 7以降では、ファイルビジターパターンを使用してディレクトリの内容を再帰的に参照できます。
FileVisitor
インターフェイスのマニュアルはhereです。
これにより、File
オブジェクトの大きな配列を作成せずにファイルを反復処理できます。
Path start = Paths.get(new URI("file:///my/folder/"));
Files.walkFileTree(start, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException
{
System.out.println(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException e)
throws IOException
{
if (e == null) {
System.out.println(dir);
return FileVisitResult.CONTINUE;
}
else {
// directory iteration failed
throw e;
}
}
});
[私は以前に与えた答え役立つかもしれない](http://stackoverflow.com/questions/27898652/how-to-read-multiple-text-files-in-java-for-gui-use-didnt-find-the-answer/27900034#27900034) 一部の機能を変更する必要がありますが、ストリームを使用する方が効率的です。しかし、パフォーマンスについてはわかりません。 – easyDaMan