使用读取嵌入式存档文件时遇到一些非常奇怪的错误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
,并且有什么方法可以使用 commons compress 读取嵌入式存档文件的字节?