java.io.FileNotFoundException(打开的文件太多)

标签 java file-io

我使用以下代码将一些数据写入文件:

BufferedWriter writer = null;
try {
    writer = new BufferedWriter(new FileWriter(file));
    writer.write(...);
    writer.flush();
}
finally {
    if (writer != null)
        writer.close();
}

多次调用该方法后,我得到了一个 FileNotFoundException,因为打开的文件太多。

显然,当我关闭编写器流时,java 不会关闭文件句柄。单独关闭 FileWriter 没有帮助。

有没有……我可以强制 java 关闭文件吗?

最佳答案

您的代码看起来不错。它可能是您应用程序的另一部分正在泄漏文件句柄。

您可以在 Linux 上使用 lsof 或在 Solaris 上使用 pfiles 来监视文件句柄。在 Windows 上,您可以使用 ProcessExplorer .

关于java.io.FileNotFoundException(打开的文件太多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095347/

相关文章:

android - 将图像存储在内部存储器中

Java 代码在使用用户输入循环运行时保持读入文件

java - 让 Maven 运行 Javadoc :javadoc from mvn package

java - 添加对 war build 的额外依赖

java - 对于 boolean 字段,它的 getter/setter 的命名约定是什么?

java - 如何从似乎无法修复的分号中修复此错误?

java - 使用依赖注入(inject)解决循环依赖时如何解决maven问题?

python - Python 2.7 中的 Open() 和 codecs.open() 行为异常不同

C如何读取以逗号分隔的输入

javascript - 使用 Opera 小部件模拟器的 Opera 小部件中的文件 I/O 问题