0
當使用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
,是有什麼辦法可以讀取使用公共嵌入壓縮歸檔文件的字節?
說有沒有辦法猜測到給定的文件使用的歸檔,而不是爲每個檔案庫創建對象? –
這一切都取決於你想要做什麼。你想只閱讀一個特定的文件,如果是的話,你知道哪一個?可以使用ArchiveEntry對象訪問archieve中的所有文件。 – Filip
我正在閱讀可包含任何類型檔案的整個文件目錄。我想打開每個檔案並用它的字節做一些事情(在另一個對象中)。 –