将 GZIPOutputStream 转换为字节数组

Convert GZIPOutputStream to byte array

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

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

GZIPOutputStream zipStream = createGZIP();
byte[] compressedData = zipStream.toByteArray();

错误:无法解析方法 "toByteArray()"

勾选了GZIP compression to a byte array,但是输入的是一个byte[]。我需要转换我已有的 gzip。

I have a GZIPOutput stream which has already defined. Now I want to convert it to a byte array.

您需要修改创建 GZIPOutputStream 的方法,以便将其发送到 ByteArrayOutputStream

或者,关闭您正在(大概)写入压缩数据的文件的 FileOutputStream 后,打开它进行输入并将其读入字节数组。


关于您当前的尝试:

GZIPOutputStream zipStream = createGZIP();
byte[] compressedData = zipStream.toByteArray();

这种方法行不通。

  • GZIPOutputStream 不提供 API 方法来检索压缩数据。
  • GZIPOutputStream 没有提供 API 方法来检索 GZIPOutputStream 正在写入的流。 (即使有,大多数 OutputStream 类型也不允许您检索数据...)

一般来说,最好找到并阅读您使用的 类 的 javadoc。通过猜测他们提供的方法进行编程很容易导致您在猜测错误时浪费时间。