【发布时间】:2015-08-05 19:20:35
【问题描述】:
我需要将一个非常大的文件 (1.11gb) 读入内存并以字节为单位进行处理。我这样做的唯一方法是使用 ArrayList (我不能使用 byte[] 因为那样它会超过限制)。 没有办法使文件更小(我用它来测试我的程序处理数据的时间)。 然后我需要将 ArrayList 作为文件放回硬盘驱动器(仍然是 1.11gb) 我不像阅读那样担心写作。 速度也很重要,因此除非有人有快速的方法,否则应避免子分段。
【问题讨论】:
-
请解释:我不能使用字节[],因为那样会超出限制
-
ArrayList<Byte>是byte[]在引擎盖下 -
@kaykay 不是,它是一个 Object[]。它使用的内存是字节数组的 4 或 8 倍。
-
@SotiriosDelimanolis 数组的最大长度为 2^31-1 个位置,这对我的程序来说太少了(它是一个文件操作程序)
-
我投票结束这个问题,因为这是一个X-Y Problem。你没有解释为什么你想做你想做的事,这可能会导致一个更合适的解决方案。在每种情况下,我都认为这是在
byte级别处理文件的最幼稚和最糟糕的方式。