FileOutputStream - 存在不足的系统资源来完成所请求的服务

时间:2016-09-13 19:38:23

标签: java windows fileoutputstream

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

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

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

  

没有足够的系统资源来完成所请求的服务。

我已经检查了一些可能发生此问题的案例,例如缺少分页池内存,但这些都不是我的情况。我正在使用Windows Server 2003 Server R2 SP2。架构x86。

我应该尝试用较小的块编写文件吗?最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

一些事情。

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

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

其次,尝试检查你是否真的用尽了句柄。我发表了评论,并附有关于此的链接。