来自也包含文本数据的文件的 GZip

发布于 2024-12-09 09:26:05 字数 85 浏览 0 评论 0原文

我们通过 MQ 获取一个 gzip 文件,并且该文件还附加了一些消息属性到流中。我们可以从流中读取gzip数据并解压缩吗?如果可以的话,请您指点一下。谢谢。

We get a gzip file via MQ and this has some message properties appended to the stream as well. Can we read the gzip data from the stream and unzip it? If this is possible, please could you give some pointers. Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灼痛 2024-12-16 09:26:05

read 函数返回实际读取的字节数。因此,您应该存储此函数的返回值(当前在签入代码时位于内部)。当该值为!= -1且< 1024 那么它会让你知道 gzip 数据在哪里结束,字符串数据在哪里开始。

read function return the actual number of bytes read. So you should store the return value of this function (currently inside while check in your code). When this value is != -1 and is < 1024 then it gives you the idea that where gzip data ends and string data starts.

煞人兵器 2024-12-16 09:26:05

这应该有效。我的需要调整(未测试)。

编辑:

GZIPInputStream gz = new GZIPInputStream(inputStream);
InputStreamReader r = new InputStreamReader(gz);
BufferedReader br = new BufferedReader(r);
StringBuilder sb = new StringBuilder();
String line;
while ( (line = br.readLine()) != null ) {
    sb.append(line);
}
System.out.println(sb.toString());

This should work. My need tweaking (not tested).

Edit:

GZIPInputStream gz = new GZIPInputStream(inputStream);
InputStreamReader r = new InputStreamReader(gz);
BufferedReader br = new BufferedReader(r);
StringBuilder sb = new StringBuilder();
String line;
while ( (line = br.readLine()) != null ) {
    sb.append(line);
}
System.out.println(sb.toString());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文