当前位置: 首页 > 面试题库 >

GZIPInputStream转换为String

杨雪松
2023-03-14
问题内容

首先,对不起,如果我的术语有点业余,请尝试忍受我;)

我正在尝试将HTTP响应的压缩后的正文转换为纯文本。我已将此响应的字节数组转换为ByteArrayInputStream。然后,我将其转换为GZIPInputStream。现在,我想读取GZIPInputStream并将最终解压缩的HTTP响应正文存储为纯文本字符串。

这段代码会将最终解压缩的内容存储在OutputStream中,但我想将内容存储为String:

public static int sChunk = 8192;
ByteArrayInputStream bais = new ByteArrayInputStream(responseBytes);
GZIPInputStream gzis = new GZIPInputStream(bais);
byte[] buffer = new byte[sChunk];
int length;
while ((length = gzis.read(buffer, 0, sChunk)) != -1) {
        out.write(buffer, 0, length);
}

问题答案:

要从InputStream解码字节,可以使用InputStreamReader。然后,BufferedReader将允许您逐行读取流。

您的代码如下所示:

ByteArrayInputStream bais = new ByteArrayInputStream(responseBytes);
GZIPInputStream gzis = new GZIPInputStream(bais);
InputStreamReader reader = new InputStreamReader(gzis);
BufferedReader in = new BufferedReader(reader);

String readed;
while ((readed = in.readLine()) != null) {
    System.out.println(readed);
}


 类似资料:
  • 我在JavaGZip有一个问题。目前我处理的文件是gzip压缩的。一个gzip存档中的一个文件。如果我手动解压它们,然后解析它们,一切都可以工作。但我想用Java和GZipInputStream自动执行此操作,但它不起作用。我需要在最后有DataInputStream。我的代码是: 我还尝试了新的GZIPInputStream(新的FileInputStream(baseFile));结果是一样的

  • 介绍 (Introduction) java.util.zip.GZIPInputStream类实现了一个流过滤器,用于读取GZIP文件格式的压缩数据。 类声明 以下是java.util.zip.GZIPInputStream类的声明 - public class GZIPInputStream extends InflaterInputStream 字段 (Fields) 以下是java

  • 问题内容: 如何将String 列表转换为数组?以下代码返回错误。 错误: 问题答案: 你要 有关文档,请参见此处,请注意,您也可以以填充已传递数组的方式调用此方法,而不仅仅是使用它来计算要返回的类型。另请注意,也许当您打印阵列时,您更喜欢 因为那将打印实际的元素。

  • 问题内容: 我正在开发一些应用程序,它允许从SD卡中选择图像,将其保存到数据库中并为ImageView设置此值。我需要知道将uri转换为字符串并将字符串转换为uri的方法。现在,我使用了Uri的getEncodedPath()方法,但是例如,此代码不起作用: 因此,我不知道如何将Uri保存到数据库中并根据保存的值创建新的Uri。请帮我修复它。 问题答案: 我需要知道将uri转换为字符串并将字符串转

  • 问题内容: 我有一个工作正常,并从某些POCO返回JSON。我想将JSON作为字符串保存在数据库中。 我需要审核响应,因此要将其保存到数据库中。我很难找到一种将JSON作为字符串获取的方法。 任何帮助表示赞赏。 问题答案: 您正在寻找的类,它是由JsonResult内部使用:

  • 问题内容: 如何从float转换为string或从string转换为float? 在我的情况下,我需要在2个值字符串(我从表中获得的值)和我计算出的浮点值之间进行断言。 我尝试从浮动到字符串: 但是断言失败 问题答案: 使用Java的类。 为了进行比较,将字符串转换为float并比较两个float总是更好。这是因为对于一个浮点数,存在多个字符串表示形式,与字符串相比,它们是不同的(例如“ 25”!