Я должен делать что-то действительно не так. Запустив следующий код на Android, он производит усеченный файл (_items_) без каких-либо исключений или проблем в журнале. Выполняя тот же код с OpenJDK 7, он правильно распаковывает файл.Усеченный вывод из GZIPInputStream на Android
try {
final InputStream fis = new GZIPInputStream(new FileInputStream("/storage/sdcard/_items"));
try {
final FileOutputStream fos = new FileOutputStream("/storage/sdcard/_items_");
try {
final byte[] buffer = new byte[1024];
int n;
while ((n = fis.read(buffer)) != -1) {
fos.write(buffer, 0, n);
}
} finally {
fos.close();
}
} finally {
fis.close();
}
} catch (final IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
Я попытался это с Android эмулятор (API 18) и на Desire HD (Android 2.3.5) с тем же результатом багги.
входного файла (_items): https://drive.google.com/file/d/0B6M72P2gzYmwaHg4SzRTYnRMOVk/edit?usp=sharing
Android усеченный выходного файла (_items_): https://drive.google.com/file/d/0B6M72P2gzYmwMUZIZ2FEaHNZUFk/edit?usp=sharing
Я вижу такое же поведение. Пожалуйста, зарегистрируйте ошибку на http://b.android.com/. – fadden
Выполнено - https://code.google.com/p/android/issues/detail?id=63873. Любая идея обходного пути? –
Я не знаю, поможет ли вам это, но повторное сжатие файла (gunzip then gzip) привело к сжатому файлу данных, который был правильно обработан моим устройством. Что вы использовали для сжатия данных? – fadden