问题标签 [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.

0 投票
1 回答
81 浏览

java - 通过 GZipOutputStream 创建 .gz 后无法恢复正确的文件扩展名

我有我想要写入保存在我的 Java 程序中的字符串中的文件的内容。我需要将它们写入.txt文件,然后将它们压缩到.gz存档中。我能够做到这一切,但是当我从.gz档案中提取文件时,提取的文件不再是.txt文件扩展名。

这是我下面的代码:

0 投票
0 回答
37 浏览

java - 我有一个 ArrayList 在目录中存储几个 pdf 文件位置。如何将pdf的内容读取为字节数组并对其进行压缩

ArrayList 是这样的 - [ Desktop/folder/abc.pdf, Desktop/folder/xyz.pdf ]

我正在做这样的事情

0 投票
1 回答
564 浏览

spring-mvc - 如何在直接写入响应时进行 GZIP 压缩

当请求标头在 Accept-Encoding 中包含 gzip 时,我正在尝试压缩我的响应。但是,向 app.properties 添加以下内容仅在控制器方法返回对象时才有效。

我正在直接写入响应流。因此,上述压缩属性不起作用。

我的方法如下所示:

当我卷曲上述方法时,我得到一个空文件。我确实通过参考以下链接尝试使用 GzipFilter。 http://www.javablog.fr/javaweb-gzip-compression-protocol-http-filter-gzipresponsewrapper-gzipresponsewrapper.html,顺便说一句。但是,过滤器需要大量样板代码。有没有办法可以更改控制器方法并解决上述链接中的问题。

0 投票
0 回答
114 浏览

java - 我的类扩展 OutputStream 的 GZIPOutputStream 问题

我有以下问题。我编写了 Stream 类,它扩展了 OutputStream。这是一个代码:

现在我正在尝试将我的流与 GZIPOutputStream 一起使用:

程序运行良好,但是当我尝试解压缩结果文件时,出现以下异常:

当我不使用我的 Stream 时,解压缩工作正常。为什么会发生这种情况,我应该更改什么以使此代码正确?

0 投票
0 回答
95 浏览

jsf - 从 Mojarra 2.3.3 请求(gzipped)“jsf.js”导致空响应

<f:websocket/>在我的项目中使用了 mojarra 2.3.3 的标签,在项目阶段“开发”中一切正常。但是当项目部署在我们的 QA 系统上时,项目阶段为“Staging”,客户端产生了 JS 错误“'mojarra' not defined”。这是由于 jsf.js 被加载为空白文件。当我调试时,我发现com.sun.faces.application.resource.ResourceHelper#getInputStreamFromClientInfojs 文件的内容被复制到一个 GZIPOutputStream 中,该 GZIPOutputStream 永远不会完成,因此没有任何内容写入包装的 ByteArrayOutputStream (ll. 234-237),导致对我的客户端的响应为空。在阶段Development,文件以未压缩的形式交付。

这是一个错误还是我错过了什么?有这个配置吗?有解决方法吗?

我尝试设置com.sun.faces.compressJavaScriptfalse没有运气。当我GZIPOutputStream#finish()在将流写入调试器中的 ByteArrayInputStream 之前调用流时,输入流的内容是正确的并发送到客户端。我还检查了 mojarra 2.3.8,但代码似乎没有改变。

我希望客户端收到正确的 js 代码。它不一定要被压缩。

另外:该项目在带有 JDK1.8.0_161 的 Tomcat 8.5.14 上运行,我使用的是 Primefaces (6.2)。我在这里创建了一个不使用 Primefaces 的最小工作示例。它实际上并没有将任何东西推入 websocket 通道,但这里的相关事情是加载 index.xhtml 时的 JS 错误。它还使用 Java 1.8_202、Tomcat 8.5.37、Mojarra 2.3.8 进行了测试。它与 Mojarra 2.2.14 一起工作(加载 jsf.js)。

0 投票
1 回答
102 浏览

java - 意外的 Java GZIPOutputStream 结果

我们有以下 Java 方法来使用 GZIPOutputStream 压缩文件

问题是如果我们手动解压文件:

生成的解压缩文件与原始文件不匹配。 文件大小和总行数减少。例如从 33MB 到 32MB,损失了 800K 行。

问题是否与我们正在压缩的文件 的编码 ( EBCDIC ) 有关?https://en.wikipedia.org/wiki/EBCDIC

0 投票
1 回答
727 浏览

java - 在最终块中断 zip 中的 ByteStream 复制后关闭 GZIPOutputStream

我有压缩和解压缩文本的代码。我面临着奇怪的行为 - 只有当我GZIPOutputStream在某个地方关闭时,代码才能工作,但是当我尝试将它GZIPOutputStream close放在 finally 块中时,它会中断并且不起作用。如果将 :放在放置注释gzipoutputstream.close()czip函数中,它将起作用。但是,如果您仅将其保留在finally块中,它将破裂。为什么?

ByteStreams.copy函数来自com.google.common.io guava

0 投票
2 回答
2799 浏览

java - 在java中使用GZIPOutputStream发送压缩块

我正在尝试通过 java 套接字发送压缩的 HTML 文件,但浏览器显示一个空的 HTML 文件。

问题是,当我尝试发送未压缩的 HTML 时,一切正常(是的,我确实相应地修改了 HTTP 标头)。

基本上,标头包含 HTTP 标头,正文包含 HTML 文件。其余的似乎不言自明。什么可能导致这种行为?

编辑:标题是这样生成的:

0 投票
1 回答
1005 浏览

java - 如何减少 GZIPOutputStream 的时间

我试图 gzip 一个大(100mb 到 500mb)的 xml 文件。我已经创建了方法 Zip 来做到这一点。问题是它谈论太多时间来压缩。对于 200mb 需要 1.2 秒。对于 100mb xml 文件,我需要将时间减少 100 毫秒。如何优化以减少压缩时间?

我通过在压缩比上几乎没有妥协来减少时间。尝试了另一种算法,如 Snappy、Lz4,但没有太大改进,而且它们的压缩率也很差。据我所知,gzipOutputStream.write() 需要 85% 的时间。所以我怎样才能优化这一步以获得更好的性能而不会影响很多压缩率。

0 投票
1 回答
432 浏览

java - 将 GZIPOutputStream 转换为字节数组

我已经有一个已经定义的 GZIPOutput 流。现在我想将它转换为字节数组。

我尝试了下面的代码。但它给出了一个错误。

错误:无法解析方法“toByteArray()”

检查GZIP 压缩到一个字节数组,但它正在输入一个字节 []。我需要转换一个我已经拥有的 gzip。