java - FileOutputStream - 系统资源不足,无法完成请求的服务

标签 java windows fileoutputstream

我使用以下代码将文件写入磁盘。

`try{
     FileOutputStream fileOutputStream = null;            
     fileOutputStream = new FileOutputStream(filePath);
     fileOutputStream.write(fileData);
     fileOutputStream.flush();
 }
 finally{
     fileOutputStream.close();
 }
      `

问题是我间歇性地收到以下错误:

Insufficient system resources exist to complete the requested service.

我已经检查过一些可能发生此问题的情况,例如缺少分页池内存,但没有一个是我的情况。我使用的是 Windows Server 2003 Server R2 SP2。架构 x86。

我应该尝试以较小的 block 写入文件吗?最好的方法是什么?

最佳答案

一些事情。

首先,您应该考虑使用缓冲区。尝试用 BufferedOutputStream 包装您的 FileOutputStream。

try{
     BufferedOutputStream outputBuffer = null;            
     outputBuffer = new BufferedOutputStream (new FileOutputStream(filePath));
     outputBuffer.write(fileData);
     outputBuffer.flush();
 }
 finally{
     outputBuffer.close();
 }

其次,尝试检查句柄是否真的用完了。我留下了一 strip 有相关链接的评论。

关于java - FileOutputStream - 系统资源不足,无法完成请求的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39477769/

相关文章:

java - 如何检查 BackStack 是否为空

c - ProcessID困惑

java - 在 Java 中,为什么 FileWriter 抛出 IOException 而 FileOutputStream 抛出 FileNotFoundException 的原因完全相同

c++ - std::string 未正确终止

java - java 查找数组中每个元素出现的次数

java - eclipse中未找到JRE系统库异常

java - 无法连接到 Google API 客户端?

Java:如何获得永不更改的计算机的唯一序列号

使用文件中的行来构造命令中的参数的 Windows 批处理文件

java - java中用字节写入文件的概念是什么?