- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人知道为什么创建 gzip 字符串的代码不起作用吗? Mac 上的 CLI gzip 无法打开生成的文件:“不是 gz 格式”。
请注意:我需要字符串,而不是文件。直接创建 gzip 压缩文件是可行的,编写 JSON 而不压缩它也是如此。本例中的文件写入仅用于测试目的。
public someMethod {
String gzippedString = this.gzippedString(finalJSONObject.toJSONString());
OutputStream outputStream = new FileOutputStream(new File(this.jsonOutputPath + "/myfile.gz"));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
writer.append(gzippedString);
writer.close();
}
private String gzippedString(String inputString) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
gzipOutputStream.write(inputString.getBytes());
gzipOutputStream.close();
outputStream.close();
String gzippedString = outputStream.toString();
return gzippedString;
}
编辑:chrylis 给我指了路:
public void someMethod() {
byte[] byteArray = this.gzippedByteArray(finalJSONObject.toJSONString());
FileOutputStream out = new FileOutputStream(this.jsonOutputPath + "/myfile.gz");
out.write(byteArray);
out.close();
}
private byte[] gzippedByteArray(String inputString) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
gzipOutputStream.write(inputString.getBytes());
gzipOutputStream.close();
outputStream.close();
byte[] gzippedByteArray = outputStream.toByteArray();
return gzippedByteArray;
}
这会产生一个可用的 gzip 压缩 JSON。非常感谢!
最佳答案
您通过 String
来回传输二进制数据,该字符串具有字符编码和其他此类修饰。直接使用byte[]
。
关于Java GZIPOutputStream : Corrupted gzip with this method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149758/
是否有 GZIPOutputStream 的实现可以在单独的线程中完成繁重的工作(压缩+写入磁盘)? 我们正在不断写入大量 GZIP 压缩数据。我正在寻找一个可以代替 GZIPOutputStream
我对 GZIPOutputStream 有一个非常奇怪的问题压缩 double 组时。在第 57 个元素处,当我重新加载数据时出现了一个小差异: 57 > 3.003727492141554E7 3.
我正在 AppEngine 上编写一个 java servlet。此 servlet 生成 png 图像。我想“压缩”响应。我这样做: resp.setHeader("Content-Encoding
我试过搜索但找不到任何东西。我想要做的是循环遍历一个列表,在该列表中我从多个列表中的项目组合构造一个字符串。然后我想将这些字符串转储到 gzip 文件中。我只是将它转储到一个普通的 ascii 文本文
以下代码生成两个字符串的确定性文件(shasum 相同)。 try( FileOutputStream fos = new FileOutputStream(saveL
我正在使用 GZIPOutputStream 以异步方式将压缩数据写入磁盘 我想知道已经写入的数据大小,以便在达到限制后关闭文件 ByteBuffer src; //.. //data added t
我尝试过 gzip 一个大的(100mb 到 500mb)xml 文件。我已经创建了方法 Zip 来做到这一点。问题是它的 zip 时间太多了。对于 200mb 的文件,需要 1.2 秒。对于 100
我想压缩我的字符串值。这些字符串值应与 .net 压缩字符串相同。 我写了Decompress 方法,当我向它发送一个.net 压缩字符串时,它工作正常。但是 Compress 方法无法正常工作。 p
我正在用 Java 开发一个带有套接字的小型网络服务器。我让它像 HTTP 一样工作,使用 Connection: keep-alive 等等。现在,我想压缩 (GZIP) 发送的数据。 为了确保遵守
我正在编写一个简单的 Java http 服务器,它用 JSON 数据进行响应。我试图在发送数据之前对数据进行 GZip 压缩,但它通常会发回在浏览器中产生错误的 gzip 数据。例如,在 Firef
我的应用程序正在将大量视频和 i2c 传感器数据记录到磁盘文件中 - 尽可能快。目前我正在将所有内容转换为字节,并使用 BufferedOutputStream 进行写入。 @Siguza 非常友善地
有人知道为什么创建 gzip 字符串的代码不起作用吗? Mac 上的 CLI gzip 无法打开生成的文件:“不是 gz 格式”。 请注意:我需要字符串,而不是文件。直接创建 gzip 压缩文件是可行
在this thread的帮助下我能够编写一个 decompress() 和一个 compress() 函数。我的程序接收压缩形式的数据,对其进行扩充,有时修改它,然后再次重新压缩并发送它。经过几个小
我正在尝试将一系列 Long 写入 GZIPOutputStream,希望稍后能解压缩这些数字。 当我尝试使用少量 Long 时,以下程序运行良好,但使用许多 Long 时会抛出异常,例如 (1024
要检索通过 gzip 压缩的文件的未压缩大小,您可以读取最后四个字节。我这样做是为了看看是否有任何文件的大小不符合其应有的大小。如果文件小于应有的大小,我使用以下代码附加到文件: GZIPOutput
我有一个遗留系统,服务器在数周内缓慢更新。层次结构是这样的: 1 2 3 4 5 1 is the client pc 2 is a master server 3 4 and 5 are serve
我们正在开发一个需要刷新(强制压缩和发送数据)GZIPOutputStream 的程序。问题是,GZIPOutputStream 的 flush 方法没有按预期工作(强制压缩和发送数据),而是 Str
GZIPOutputStream 只是 DeflaterOutputStream 的子类,但两者都可以实例化。我什么时候用一个而不是另一个?压缩率一样吗? 最佳答案 DeflaterOutputStr
谁能推荐我是否应该这样做: os = new GzipOutputStream(new BufferedOutputStream(...)); 或 os = new BufferedOutputStr
我有一个 BufferedWriter 如下所示: BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
我是一名优秀的程序员,十分优秀!