【发布时间】:2013-08-05 18:56:02
【问题描述】:
我在使用 org.apache.commons.compress 读取嵌入式存档文件时遇到了一些非常奇怪的错误,我怀疑是我的经验不足困扰着我。
在运行我的代码时,我收到了各种截断的 zip 文件错误(以及其他截断的文件错误)。我怀疑这是我使用ArchiveInputStream
private final void handleArchive(String fileName, ArchiveInputStream ais) {
ArchiveEntry archiveEntry = null;
try {
while((archiveEntry = ais.getNextEntry()) != null) {
byte[] buffer = new byte[1024];
while(ais.read(buffer) != -1) {
handleFile(fileName + "/" + archiveEntry.getName(), archiveEntry.getSize(), new ByteArrayInputStream(buffer));
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
当我这样做archiveEntry = ais.getNextEntry() 时,这是否有效地关闭了我的ais,有没有办法使用公共压缩读取嵌入式存档文件的字节?
【问题讨论】:
标签: java bytearray inputstream apache-commons-compress