-1

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

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

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

错误:无法解析方法“toByteArray()”

检查GZIP 压缩到一个字节数组,但它正在输入一个字节 []。我需要转换一个我已经拥有的 gzip。

4

1 回答 1

3

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

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

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


关于您当前的尝试:

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

这种方法行不通。

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

通常,最好查找并阅读您使用的类的 javadocs。当您的猜测错误时,通过猜测他们提供的方法进行编程很可能会导致您浪费时间。

于 2019-06-18T07:20:38.727 回答