java - IOUtils.toByteArray() 的内存不足错误

标签 java file stream out-of-memory arrays

我在下面的代码行中收到 OOM 错误。有办法解决吗?我尝试增加堆大小但没有用。

FileInputStream inputDoc = new FileInputStream(inputDoc1);
byte[] bytes = IOUtils.toByteArray(inputDoc);

upl.edmsDocument = bytes;

更新:添加了以下参数-Xms2048m -Xmx2048m -Xincgc然后我能够连续上传几个大文件,但性能不一致。

最佳答案

如果您知道输入的大小,则应该使用 toByteArray(inputDoc1, inputDoc1Size) 而不是 toByteArray(inputDoc1)。请注意,无论如何,您都受到 Integer.MAX_VALUE 条目的限制,如 API documentation. 中所述。

关于java - IOUtils.toByteArray() 的内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029219/

相关文章:

java - 在 javafx 中使用 css 设计表单

node.js - 将文件下载从 protected 路径传递到浏览器

java - 打印文件中字母的水平直方图。如何扩展它? java

java - 使用Java的FileInputStream

java - 加载自定义字体时出现问题

java - 在JavaFx中,如何从网格 Pane 中删除特定节点及其坐标?

java - 如何在 Eclipse 中导入 JSON Simple?

java - Java Android 中的正则表达式

file - Swi Prolog,卸载源文件

video - 如何在m3u8播放列表中循环播放TS文件