在我的程序中,我有循环扫描一堆文件并读取其内容.问题发生在大约1500个文件的迭代中,似乎无法再现(或理解(由我))
问题:
java.io.FileNotFoundException: /path/to/file//myFile (Too many open files)
此方法的例外情况如下:
private static String readFileAsRawString(File f) throws IOException {
FileInputStream stream = new FileInputStream(f); // <------------Stacktrace
try{
FileChannel fc = stream.getChannel();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY,fc.size());
return Charset.defaultCharset().decode(bb).toString();
} finally {
stream.close();
}
}
我在QA中运行了这个方法超过20,000个文件,它似乎没有任何问题.
您是否看到上面粘贴的代码有什么问题导致此问题?
最佳答案