1
作爲免責聲明,我已經看到this帖子和鏈接到它的帖子。仍然是問題? - java.util.zip.ZipException:找不到中央目錄條目
我有一個文件託管在一個服務器上,這是一個歸檔文件,我試圖用this方法解壓它。當文件被預先下載到設備上時,我打開並在我的應用程序中取消存檔,通過Downloads
的intent-filter
,沒有任何問題。然而,當我從我的應用程序中的服務器下載它,然後嘗試將它解壓縮,我得到的標題錯誤在這條線:
ZipFile zipfile = new ZipFile(archive);
凡archive
是File
指向存檔文件我下載。我使用它來下載檔案的代碼如下:
String urlPath = parameters[0], localPath = parameters[1];
try
{
URL url = new URL(urlPath);
URLConnection connection = url.openConnection();
connection.addRequestProperty("Accept-Encoding", "gzip");
connection.connect();
int fileLength = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new BufferedOutputStream(new FileOutputStream(localPath));
byte data[] = new byte[1024];
long total = 0;
int count;
while((count = input.read(data)) != -1)
{
total += count;
publishProgress((int)total * 100/fileLength);
output.write(data);
}
output.flush();
output.close();
input.close();
我最近添加了編碼類型,每個我在上面提到的職位,但我仍然得到同樣的錯誤。任何幫助都會很棒。
只是爲了澄清:
- 我有一個存檔文件
- 當文件被外部下載和打開/未歸檔我的應用程序
- 裏面當我下載檔案,然後將其解檔細試圖unarchive它,我收到錯誤
java.util.zip.ZipException: Central Directory Entry not found
我最好的猜測是,這是一個問題,米y下載。然而,這就是說,我不知道我做錯了什麼。
真的嗎?該文檔說'寫(緩衝區)'是'相當於寫(緩衝區,0,buffer.length).' – RileyE
@RileyE當然它是,但都不等於我發佈的代碼。你需要去閱讀read()的文檔。 – EJP
哦對。我注意到它沒有讀完整字節的大小。我不知道我怎麼沒有聽到。好點子。謝謝你,先生! – RileyE