我已经有一个已经定义的GZIPOutput流。现在我想将其转换为字节数组。
我尝试了下面的代码。但它给出了一个错误。
GZIPOutputStream zipStream = createGZIP();
byte[] compressedData = zipStream.toByteArray();
错误:无法解析方法"toByteArray()">
检查了GZIP压缩到字节数组,但它正在输入一个字节[]。我需要转换我已经拥有的 gzip。
我有一个已经定义的GZIPOutput流。现在我想将其转换为字节数组。
您需要修改创建GZIPOutputStream
的方法,以便将其发送到ByteArrayOutputStream
。
或者,在关闭(大概)写入压缩数据的文件的FileOutputStream
后,打开它进行输入并将其读入字节数组。
关于您当前的尝试:
GZIPOutputStream zipStream = createGZIP();
byte[] compressedData = zipStream.toByteArray();
这种方法是行不通的。
GZIPOutputStream
不提供用于检索压缩数据的 API 方法。GZIPOutputStream
不提供用于检索GZIPOutputStream
正在写入的流的 API 方法。 (即使有,大多数OutputStream
类型也不允许您检索数据......
通常,最好查找并阅读您使用的类的 javadocs。 通过猜测它们提供的方法进行编程可能会导致您在猜测错误时浪费时间。