gpt4 book ai didi

java - Java中InputStream的内存问题

转载 作者:行者123 更新时间:2023-11-30 05:58:04 26 4
gpt4 key购买 nike

我需要将文件读入字节数组。整个文件需要读入数组。问题是我收到 OutOfMemory 错误,因为文件大小太大。增加-XmX似乎没有任何效果。这是代码片段:

InputStream in = new FileInputStream(file);
long length = file.length();
byte[] out = new byte[(int)length];
// Process the byte array

问题发生在字节数组实例期间。是否有内存消耗较少的解决方法来解决此问题?

最佳答案

使用此方法时,您需要拥有比最大文件多得多的可用内存。鉴于一台 24 GB 的机器成本不到 2000 英镑,这个想法不再像以前那么愚蠢了。实际上,在某些情况下,一个 byte[] 的 2GB 限制更让人头疼。

但是,读取 InputStream 的常用方法是一次读取一个 8KB 的 block 。这样您只需拥有远超过 8KB 的可用空间。

顺便说一句:您可以使用 -mx1g 而不是您正在使用的选项。

关于java - Java中InputStream的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com