问题标签 [gzipoutputstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么我会直接重新抛出异常,而不进行错误处理
我找到了一段 Base64 编码的代码。在阅读它时,我偶然发现了这样的事情:
如您所见,IOException 在 catch 块中被捕获并立即重新抛出,这似乎不是一个错误,因为注释甚至描述了操作并将 finally 块的执行命名为目的。
但是无论如何都不会调用 finally 块吗?
资料来源:
java - 压缩 TreeSet 对象时出现 Java GZipOutputStream StackOverflowError
在使用 GZipOutputStream 将 TreeSet 对象压缩到 byte[] 数组中时,我遇到了一个奇怪的 StackOverflowError。
执行压缩的代码非常标准:
TreeSet 对象包含数据对象的集合,这些对象中的字段是平面的,即没有映射/列表/集合(它们可能有一些集合字段,但由于 TreeSet 被压缩,它们是空的),只有数字、布尔值和字符串。
我在一些帖子中读到 GZIPOutputStream 在处理复杂的地图结构时会遇到这个问题,但没有更多细节。
有谁知道什么样的地图会因为这种堆栈溢出错误而破坏 GZIP?我正在压缩的 TreeSets 也特别大......错误偶尔出现,我无法自行生成它,它只会在生产中运行时发生,当这些 TreeSets 被积极使用时(读取、添加和拉链)。
java - 通过 GZIPOutputStream 形成的 BufferedWriter 计算写入文件的字节数
我有一个BufferedWriter
如下图:
我想找出写入文件的字节而不像查询文件一样
因为它会增加开销,我不希望这样。
我也不能这样做:
因为它在压缩前给出大小。
java - 使用 GZIPOutputStream 压缩上传,无需在本地创建 gzip 文件
在上传文件之前,我正在尝试在 java 中压缩文件GZIPOutputStream
。有没有办法将压缩文件存储在内存中以供上传,而不是让它在本地计算机上生成压缩文件?
谢谢!
java - BufferedOutputStream 多行写入文件
我制作的功能有点问题。我希望每次我给这个函数一个字符串时,它都会将我保存到同一个文件中的一个新行,但实际上现在只保存我给的最后一个字符串。这就像一次又一次地覆盖,需要一些帮助
例如,在 BufferedWriter 中有一个名为 newLine 的方法可以帮助做到这一点。
但是因为我想使用 GZIPOutputStream 类,所以我需要 BufferedOutputStream。
任何想法如何做到这一点?感谢 ypu
java - 为什么 Java 和 Go 的 gzip 会得到不同的结果?
首先,我的Java版本:
输出是:
31 -117 8 0 0 0 0 0 0 0 -53 72 -51 -55 -55 47 -49 47 -54 73 1 0 -83 32 -21 -7 10 0 0 0
然后是 Go 版本:
输出:
31 139 8 0 0 9 110 136 0 255 202 72 205 201 201 47 207 47 202 73 1 0 0 0 255 255 1 0 0 255 255 173 32 235 249 10 0 0 0
为什么?
起初我认为这可能是由这两种语言的不同字节读取方法引起的。但我注意到 0 永远无法转换为 9。并且大小[]byte
不同。
我写错代码了吗?有什么方法可以让我的 Go 程序获得与 Java 程序相同的输出?
谢谢!
java - 在 try-wtth-resources 块中使用 GZIPOutputStream 对象时是否需要调用 finish()
在 try-with-resources [autoclosable] 块内使用 GZipOutputStream 时,是否需要finish()
在完成资源后显式调用?
java - NIO GZIP 压缩和复制文件
我正在使用FileChannel
并进行从fromFile到toFileFileInputStream
的简单文件复制。File
File
代码基本上是这样的:
wherefromFile
和toFile
是正确的File
对象。现在,我不想直接从复制,而是fromFile
想使用 GZIP(在 Java 库中找到)压缩其内容,然后复制到toFile
. 同样反过来,当我从 转回时toFile
,我也想解压缩它。
我想知道有没有一种简单的方法
或者
并且所有其余代码保持不变。你对这个最干净的解决方案有什么建议吗?
谢谢..
java - 通过 RESTful Web 服务发送文件:Base64 编码和 GZip 压缩
几天以来,我一直在摆弄 Java 项目,以使用 RESTful Web 服务发送/接收文件。我使用尽可能少的额外库来做到这一点,因为这将是对现有软件系统的扩展。为了让我的项目在这个软件系统中运行,我需要遵循他们的 API。我需要提供我的“扩展”作为 OSGI 包。
因为我的项目的结果需要运行 snappy 并且可能在移动设备上运行,所以我还想对文件使用 GZip 压缩。此外,当我阅读有关通过 REST 发送文件的信息时,似乎最好对文件的内容进行 Base64 编码并随其发送文件名。
这将我带到以下客户端代码示例:(不是实际的“扩展”)
从日志输出来看,这部分似乎工作正常。(前 3 行)
当我尝试在我的服务中读取、解码、解压缩它时,就会出现问题。(软件系统上的“扩展”)如上面日志的最后一行所示。
接听电话的代码如下:
我在网上和stackoverflow上环顾四周,但似乎做得对。我从以下帖子中得到了一些想法: 如何将 Java 字符串转换为字节 []? 和 Base64 数据的流解码 没有成功。一定有什么我忽略了。
来自服务器的日志是:
当我注释掉 GZip 压缩时,它工作得很好。任何帮助或提示将不胜感激。
亲切的问候
java - 编写一个压缩请求体的 OkHttp 拦截器
我正在尝试编写一个使用 Gzip 压缩请求正文的拦截器。
我的服务器不支持压缩请求,所以我将使用 anapplication/octet-stream
而不是 Content-Type: gzip
手动压缩请求正文,它将在后端手动解压缩。
它不起作用 - 触发请求 30 秒后,500 Server Error
收到 a 。在服务器上有一个超时异常。
我的猜测是我在 gzip 方法的输入/输出上做错了……有什么想法吗?
更新如果我停止应用程序,请求成功通过,这是否表明应用程序仍在等待来自 outputBuffer 的数据?