【发布时间】:2019-03-12 13:04:20
【问题描述】:
我有一个学校作业,要求我使用 apache commons compress library 接收输入流并将其压缩为具有 5 种格式之一的字节数组(根据用户规范)。 5 种格式是:ZIP、JAR、SEVENZ、BZIP2 和 GZIP。我编写了以下方法来压缩 JAR 格式的输入流,但得到了一个非法状态异常,字符串为“No current entry”。
private byte[] documentJARCompression(InputStream in) throws IOException {
BufferedInputStream buffIn = new BufferedInputStream(in);
ByteArrayOutputStream out = new ByteArrayOutputStream();
JarArchiveOutputStream jarOut = new JarArchiveOutputStream(out);
final byte[] buffer = new byte[out.size()];
int n = 0;
while (-1 != (n = buffIn.read(buffer))) {
jarOut.write(buffer, 0, n);
}
jarOut.close();
return buffer;
}
【问题讨论】:
-
Jar == Zip 是多文件压缩,其中每个文件都是一个带有文件名的条目。
-
你看tutorial了吗?
标签: java apache-commons-compress