我使用以下代码将文件写入磁盘。
`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/