gpt4 book ai didi

Java 处理数十亿字节

转载 作者:行者123 更新时间:2023-11-29 03:52:38 24 4
gpt4 key购买 nike

我正在用 Java 创建一个压缩 算法;要使用我的算法,我需要目标文件的大量结构信息

收集数据后,我需要重新读取文件。 <- 但我不想这样做。

在重新读取文件时,我通过“转换”文件数据为一种相当特殊的格式,使其成为压缩的良好目标。然后我压缩它。

现在的问题是:

  1. 我不想打开一个新的 FileInputStream 来重新读取文件。
  2. 我不想将转换后的文件(通常是目标文件大小的 150%)保存到磁盘。

是否有任何方法可以“重置” FileInputStream 以移动到文件的开头,以及我将如何存储大量“已转换”数据 高效而无需写入磁盘?

最佳答案

您可以使用一个或多个 RandomAccessFiles。您可以将它们内存映射到不消耗堆(实际上它们使用大约 128 字节)或直接内存但可以随机访问的 ByteBuffer()。

您的临时数据可以存储在直接的 ByteBuffer 或更多内存映射文件中。由于您可以随机访问原始数据,因此您可能不需要像您想象的那样在内存中复制那么多数据。

通过这种方式,您只需几 KB 的堆就可以访问整个数据。

关于Java 处理数十亿字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7984740/

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