gpt4 book ai didi

java - 从 GZIPInputStream 读取大量字节

转载 作者:行者123 更新时间:2023-12-01 21:08:22 25 4
gpt4 key购买 nike

我正在通过 GZIPInputStream 读取 gzip 压缩文件。我想一次读取大量数据,但无论我要求 GZIPInputStream 读取多少字节,它总是读取少得多的字节数。例如,

val bArray = new Array[Byte](81920)
val fis = new FileInputStream(new File(inputFileName))
val gis = new GZIPInputStream(fis)
val bytesRead = gis.read(bArray)

读取的字节总是在 1800 字节左右,而它应该几乎等于 bArray 的大小,在本例中为 81920。为什么会这样呢?有没有办法解决这个问题,并且确实有更多的字节数读取?

最佳答案

如果您有大量数据,我会尝试使用 akka-streams。

  implicit val system = ActorSystem()
implicit val ec = system.dispatcher
implicit val materializer = ActorMaterializer()

val fis = new FileInputStream(new File(""))
val gis = new GZIPInputStream(fis)
val bfs: BufferedSource = Source.fromInputStream(gis)

bfs 公开用于流处理的 Flow API。

您还可以从中获取流:

val ss: Stream[String] = bfs.bufferedReader().lines()

关于java - 从 GZIPInputStream 读取大量字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41900501/

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