gpt4 book ai didi

java - 在 Java 中强制刷新 GZIPOutputStream

转载 作者:太空狗 更新时间:2023-10-29 22:39:43 26 4
gpt4 key购买 nike

我们正在开发一个需要刷新(强制压缩和发送数据)GZIPOutputStream 的程序。问题是,GZIPOutputStream 的 flush 方法没有按预期工作(强制压缩和发送数据),而是 Stream 等待更多数据以进行有效的数据压缩。

当您调用 finish 时,数据被压缩并通过输出流发送,但 GZIPOutputStream(不是底层流)将被关闭,因此我们无法写入更多数据,直到我们创建一个新的 GZIPOutputStream,这会消耗时间和性能。

希望任何人都可以帮助解决这个问题。

最好的问候。

最佳答案

我还没有尝试过这个,在我们拥有 Java 7 之前这个建议不会有用,但是 GZIPOutputStreamflush() 的文档从 DeflaterOutputStream 继承的方法依赖于在构造时使用 the syncFlush argument 指定的刷新模式 (与Deflater#SYNC_FLUSH相关)决定是否刷新要压缩的挂起数据。此 syncFlush 参数在构造时也被 GZIPOutputStream 接受。

听起来您想使用 Deflator#SYNC_FLUSH或者甚至 Deflater#FULL_FLUSH , 但是,在深入挖掘之前,首先尝试使用 the two-argumentthe four-argument GZIPOutputStream constructor并为 syncFlush 参数传递 true。这将激活您想要的冲洗行为。

关于java - 在 Java 中强制刷新 GZIPOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640080/

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