Я пытаюсь загрузить ZIP-файл на SD-карту.Я загружаю его правильно, но когда я открываю загруженный файл (с ZipFile), я получаю это исключение ZipException («Запись в центральном каталоге не найдена»).
Интернет-файл в порядке, SD-копия-файл в порядке (ПК открывался и правильно отображал файлы), но по какой-то причине не работает в Android.
Код для скачивания:
<code>BufferedInputStream stream = null;
try {
stream = new BufferedInputStream(is, 8192);
}
....</p>
<p>try {
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = stream.read()) != -1 )
baf.append((byte) current); </p>
<p>BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(path));
fos.write(baf.toByteArray());
fos.close();
}
...
Я предположил, чтопроблема в заголовках файлов ZIP, которые не были правильно написаны, но я не знаю, по какой причине.Исходный код класса ZipEntry показывает мне это:
<code>long sig = (hdrBuf[0] & 0xff) | ((hdrBuf[1] & 0xff) < < 8) |
((hdrBuf[2] & 0xff) < < 16) | ((hdrBuf[3] < < 24) & 0xffffffffL);
if (sig != CENSIG) {
throw new ZipException("Central Directory Entry not found");
}
Спасибо,