Java 解压缩使用 zlib deflate 压缩的字符串

2023-11-26

正如标题所说。如何解压缩使用 zlib deflate 压缩的压缩字符串?有解释的可靠方法是什么?


试试这个 - 这是一个最小的工作示例:

package zlib.example;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Arrays;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.InflaterInputStream;

/**
 * Created by keocra on 08.10.15.
 */
public class Main {
    private final static String inputStr = "Hello World!";

    public static void main(String[] args) throws Exception {
        System.out.println("Will zlib compress following string: " + inputStr);

        // will compress "Hello World!"
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DeflaterOutputStream dos = new DeflaterOutputStream(baos);
        dos.write(inputStr.getBytes());
        dos.flush();
        dos.close();

        // at this moment baos.toByteArray() holds the compressed data of "Hello World!"

        // will decompress compressed "Hello World!"
        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
        InflaterInputStream iis = new InflaterInputStream(bais);

        String result = "";
        byte[] buf = new byte[5];
        int rlen = -1;
        while ((rlen = iis.read(buf)) != -1) {
            result += new String(Arrays.copyOf(buf, rlen));
        }

        // now result will contain "Hello World!"

        System.out.println("Decompress result: " + result);
    }
}

您还应该能够轻松扩展此示例以压缩/解压缩文件。

希望能帮助到你 ;-)

进一步阅读:

  • http://docs.oracle.com/javase/7/docs/api/java/util/zip/DeflaterOutputStream.html
  • https://docs.oracle.com/javase/7/docs/api/java/util/zip/InflaterInputStream.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 解压缩使用 zlib deflate 压缩的字符串 的相关文章

  • 如何迭代 stringtemplate 中的 java 列表?

    我想迭代字符串模板内的休眠查询结果 我一直在寻找例子 但找不到任何东西 你能帮忙吗 谢谢 语法看起来像
  • 从字符串中提取整数并将它们添加到Java中[重复]

    这个问题在这里已经有答案了 我想从字符串中提取整数并将它们相加 Ex String s ab34yuj789km2 我应该从中得到整数的输出 825 即 34 789 2 825 这是一种方法 使用 String split public
  • Java中使用正则表达式确定字符串是否为URL [重复]

    这个问题在这里已经有答案了 可能的重复 检查字符串是否为有效 URL 的最佳正则表达式是什么 https stackoverflow com questions 161738 what is the best regular express
  • 从通用对象访问字段变量

    我有两节课ClassOne and ClassTwo 更新公共字段data i e public class ClassOne public byte data new byte 10 Thread that updates data an
  • 将数据传递到表单时的重定向后获取?

    我有几个场景 servlet 需要将数据从数据库检索到的记录传递到 JSP 中的表单 目前 我将此信息存储在请求中 使用 RequestDispatcher 转发到页面 一切都很好 然而 这不符合 PRG 模式 AFAIK 并且当然意味着刷
  • 何时在java中使用get/set方法[重复]

    这个问题在这里已经有答案了 我想知道何时在我的类中使用 get 和 set 方法 getName setName 以及何时简单classVariable name 反而 classVariable getName 这是使用 set 和 ge
  • 搜索 JTable 时 - 未获得正确的 ID

    所以我尝试在搜索名称后单击表 然后在其他表中编辑它 问题是我没有获得正确的 ID 而只获得第一个 ID JTable https i stack imgur com TnNIq png 搜索行动 https i stack imgur co
  • 使用 GIN 注入 Class

    有没有办法注入类类型Class
  • 如何修复XSS漏洞

    我们正在使用 fortify 扫描 java 源代码 它抱怨以下错误 Method abc sends unvalidated data to a web browser on line 200 which can result in th
  • RecyclerView onItemClickListener 不工作

    我正在研究回收视图并尝试对 recyclerview 的每个项目使用点击侦听器界面 这是我的活动课程 public class LegacyHomeActivity extends ActivityBaseDrawer private Li
  • 如何在使用 Web 服务时获取会话对象?

    如何在使用 Web 服务时获取会话对象 服务在两个程序之间调用 如何在使用 Web 服务时获取用户会话对象 不可能使用请求对象获取会话 因为当我们谈论服务时不会有请求或响应 如果您正在与JAX WS https jax ws dev jav
  • 使用 TestRestTemplate 和 MockRestServiceServer 时,解析异常而不是实体列表不起作用

    我有一个简单的控制器 CODE https github com joergi tryouts blob main kotlin mockrestserver src main kotlin io joergi kotlinmockrest
  • 使用电子邮件、用户名和密码进行 Firebase 身份验证

    我想知道是否可以使用电子邮件和用户 ID 密码登录 我有一个项目 我希望用户添加一个唯一的号码 实际上是我们公司提供的工作识别号码 以便能够签名参与该计划的人员将继续留在公司就业 即使电子邮件和密码正确但用户 ID 错误 我也需要 fire
  • IntelliJ IDEA:忽略代码覆盖率中的琐碎方法

    在 IntelliJ IDEA 15 0 2 中 如何在测试覆盖率测量期间忽略琐碎的 getter 和 setter 琐碎方法 should be measure public void complex fancy interesting
  • CellTables 和 css (GWT)

    有人可以帮我设置 CellTable 行的背景吗 拜托 我整晚都在努力做这件事 但一直失败 这是 让我发疯 我尝试过调用setRowStyles 但是那个 似乎不起作用 我读到你无法更改 设置样式后 CellTable 的样式 作为默认样式
  • 使 @Schedule 在集群环境中仅运行一次

    我有两个 tomee 实例集群 每个都有一个方法注释如下 Schedule dayOfWeek public void runMeDaily 我只想每天运行一次这个方法 每天不两次 每个实例一次 我可以使用此处描述的标志仅在一个WebLog
  • 在java中的super调用之前创建一个对象

    考虑到简单的java代码是行不通的 public class Bar extends AbstractBar private final Foo foo new Foo bar public Bar super foo 我需要在之前创建一个
  • 注意通知持续时间

    是否可以将抬头通知的持续时间设置为无限 现在它只显示 5 秒 已经尝试过不同的事情 例如更改类别 但持续时间始终为 5 秒 这是我的代码 Notification notification notificationBuilder setCa
  • 更新 Maven 项目模块中的父版本

    我有一个奇怪的场景 我有一个项目 Y 它有一个模块 X 和一些其他模块 X 是项目 Y 的一部分 但它不作为该项目的模块链接 因此 每次发布 Y 的新版本时 都需要有人手动更新 X 中的父版本 我需要以这样的方式更新 Y 项目 a 每次发布
  • 使用 JavaFX 和 Maven 将模块描述符添加到库中[重复]

    这个问题在这里已经有答案了 我需要使用反思 https github com ronmamo reflections在一个带有 JavaFX 的 Maven 项目中 我想使用jlink捆绑一个最小的 JRE 问题是我运行时出现以下错误mvn

随机推荐

  • 有没有办法将系统日志消息重定向到标准输出?

    我有一个可以以两种模式运行的应用程序 使用 CLI 或作为守护程序 我在用syslog 用于记录 但是 当在 CLI 模式下运行时 我想要所有日志记录 除了那些标记的日志记录LOG DEBUG 消息发送到控制台而不是记录 我尝试过使用set
  • 异步生成器和 Observables 之间有什么区别?

    异步生成器 一个示例案例是可读流 可观测值 处理异步数据流的基本协议 这两种方法似乎都是解决异步数据流同一问题的不同方法 除了品味问题之外 两者之间还有实际区别吗 从建议的API描述来看 observables 可以有多个订阅者 广播 异步
  • tf.audio.decode_wav 如何获取其内容?

    我正在尝试使用以下命令将一些音频文件拉入 Tensorflowtf audio decode wav 我可以看到有人正在考虑在文档中提供更多信息 但是有人有任何关于这应该如何工作的示例吗 tf audio decode wav conten
  • 从深度缓冲区获取真实的 z 值

    正如预期的那样 从着色器中的深度缓冲区采样会返回 0 到 1 之间的值 给定相机的近剪裁平面和远剪裁平面 如何计算此时的真实 z 值 即距相机的距离 From http web archive org web 20130416194336
  • 将类保存到二进制文件中 - Python

    我知道可以使用以下方法将类保存到 C 中的二进制文件中 file write Class variable size of class amount of saves file where to save 或类似的东西 我想在 python
  • MailApp.sendEmail 错误消息 - “无权调用 sendEmail”[重复]

    这个问题在这里已经有答案了 当我更改电子表格中的某些内容时 onEdit 触发器运行 我可以看到我放入代码中的所有消息框 我的函数停在这一行 MailApp sendEmail emailAddress subject message 我从
  • 是否可以仅使用区域监控 + GSM 并获得不超过 5 公里的水平精度?

    我想分享我执行的测试场景的信息 并请您分享您在区域监控方面的经验 因此 我注册了两个相对的区域 A 和 B 半径为 5 公里 所需精度为 1 公里 它们之间的距离为 20 公里 但是 从 A 到 B 时 我没有收到任何 didEnterRe
  • 如何从 Android 中的 TTF 文件读取字距调整对表

    我目前正在使用从 TTF 文件加载的外部 非标准 字体在 Canvas 上绘制文本 我想为我正在显示的文本启用字距调整 我想知道是否有可能使用 Android API 从字体中读取字距对 我想知道是否有可能使用 Android API 从字
  • 电子邮件通讯服务指南

    我正在实施一个电子邮件通讯发送服务使用 NET 和 Windows Server 技术 是否有全面的指南可以提供帮助避免电子邮件被垃圾邮件过滤器捕获以及其他机制 它们应该涵盖 合法 批量邮件发送的所有方面 SMTP 配置 DNS HTML
  • 在分支签出之间保留 git --assume-unchanged 文件

    我一直在使用git assume unchanged yacs settings development py忽略我的开发分支中的本地数据库配置文件 但是当我想切换分支 用于部署 时 我收到一条错误 指出我仍有待更改的更改 git chec
  • UIImagePickerController 裁剪?

    我读过它是自动的 但在我的情况下似乎没有发生 使用 UIImagePickerController 并将 allowedEditing 设置为 YES 我得到了带有裁剪方形叠加层的编辑视图 但是当我完成图像时 它没有按照我的预期裁剪 这个阶
  • Cols、col groups 和 css ":hover" 伪类

    我正在尝试创建一个表格来显示个人的体重指数 作为其中的一部分 我想 hover 为了 tr and tr
  • 使用 Ruby 和 Nokogiri 解析大型 XML 文件

    我有一个大型 XML 文件 大约 10K 行 需要定期解析 格式如下
  • 我可以使用 std::async 而不等待未来的限制吗?

    高水平我想在异步模式下调用一些没有返回值的函数 而不等待它们完成 如果我使用 std async 则未来对象在任务结束之前不会破坏 这使得调用在我的情况下不同步 Example void sendMail const std string
  • Pandas:将数据帧转换为列表字典

    我有一个像这样的数据框 col1 col2 A 0 A 1 B 2 C 3 我想得到这个 A 0 1 B 2 C 3 I tried df set index col1 col2 to dict 但这并不完全正确 我遇到的第一个问题是 A
  • 在 Ember.js 中所有视图完全渲染后执行一次代码

    类似于文档准备就绪 但毕竟 Ember 视图渲染 我现在正在通过覆盖 ApplicationView didInsertElement 来执行此操作 到目前为止似乎有效 App ApplicationView Em View extend
  • Java中如何获取新的Pointer?

    如何从 JNA 调用 C 中具有此方法签名的方法 int open device context ctx device dev int index C 方法的最后两行如下所示 dev pdev return 0 这是唯一的用途dev在那个方
  • 在没有显式 return 语句的情况下返回值

    在 JavaScript 中 从函数末尾掉落返回undefined 如果你想返回一个值 你需要使用显式return陈述 至少到目前为止是这样 但看起来 ECMAScript 6 至少有时会允许return被省略 什么情况下会出现这种情况呢
  • 是否有可能使 WinForms 选项卡控件能够像 IE 或 Firefox 一样进行选项卡重新排序?

    是否可以对 WinForms 中的选项卡重新排序TabControl像 IE 或 Firefox 那样在运行时 像这样的链接不要给我太多希望 当然 这是可能的 您很可能试图使解决方案变得过于复杂 本质上 您所要做的就是对标准进行子类化Tab
  • Java 解压缩使用 zlib deflate 压缩的字符串

    正如标题所说 如何解压缩使用 zlib deflate 压缩的压缩字符串 有解释的可靠方法是什么 试试这个 这是一个最小的工作示例 package zlib example import java io ByteArrayInputStre