gpt4 book ai didi

java - 如何有效地将未压缩的 InputStream 转换为 gzip 压缩的 InputStream?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:35 27 4
gpt4 key购买 nike

用户将一个大文件上传到我的网站,我想对该文件进行 gzip 压缩并将其存储在 blob 中。所以我有一个未压缩的 InputStream,而 blob 需要一个 InputStream。我知道如何使用 GZIPOutputStream 将 InputStream 压缩为 Outputstream,但我如何从 gzip 压缩的 OutputStream 返回到 blob 所需的 InputStream。

我能找到的唯一方法是使用 ByteArrayOutputStream,然后使用 toByteArray 创建一个新的 InputStream。但这意味着我在内存中有文件的完整副本。如果 JDBC 驱动程序实现也将流转换为 byte[],那么我不会在内存中有两个副本,我不会感到惊讶。

最佳答案

如果您使用的是 java 1.6,则可以使用 java.util.zip.DeflaterInputStream。据我所知,这正是您想要的。如果您不能使用 1.6,您应该能够使用 java.util.zip.Deflater 重新实现 DeflaterInputStream。当从 BLOB 读回数据时,使用 InflaterInputStream 作为过滤器来取回原始数据。

关于java - 如何有效地将未压缩的 InputStream 转换为 gzip 压缩的 InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186535/

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