我正在使用以下代码将文件写入磁盘。
`try{
FileOutputStream fileOutputStream = null;
fileOutputStream = new FileOutputStream(filePath);
fileOutputStream.write(fileData);
fileOutputStream.flush();
}
finally{
fileOutputStream.close();
}
`
问题是我间歇性地收到以下错误:
没有足够的系统资源来完成所请求的服务。
我已经检查了一些可能发生此问题的案例,例如缺少分页池内存,但这些都不是我的情况。我正在使用Windows Server 2003 Server R2 SP2。架构x86。
我应该尝试用较小的块编写文件吗?最好的方法是什么?
答案 0 :(得分:1)
一些事情。
首先,您应该考虑使用缓冲区。尝试使用BufferedOutputStream包装FileOutputStream。
try{
BufferedOutputStream outputBuffer = null;
outputBuffer = new BufferedOutputStream (new FileOutputStream(filePath));
outputBuffer.write(fileData);
outputBuffer.flush();
}
finally{
outputBuffer.close();
}
其次,尝试检查你是否真的用尽了句柄。我发表了评论,并附有关于此的链接。