Witam serdecznie, męczę się drugi dzień z kompresją plików do ZIP....
W tym momencie używam GZIpOutputStream, lecz przy próbie odkompresowania pliku, dostaje komunikat że " Wystąpił nieoczekiwany koniec archiwum. W tym momencie mój kod zipowania wygląda Tak:
File zipFile = new File(EXPORT_DIRECTORY + "\\" + supplierId + "\\" + indeks, aid + ".zip");
fis = new FileInputStream(decryptedFile);
fos = new FileOutputStream(zipFile);
GZIPOutputStream zip = new GZIPOutputStream(fos);
StreamUtils.copyStream(fis, zip);
zip.close();
fos.close();
fis.close();
}
} catch (Exception e) {
logger.warn(getClass(), "cannot download file, errorMsg = " + e.getMessage());
errorList.add(new ErrorLogDto(aid, indeks, fileId, e.getMessage()));
} finally {
StreamUtils.closeStreams(fis, fos);
}
}
Czyli zipFile - podaje ścieżkę
fis - podaje plik
fos - miejsce w którym ma powstać ZIP jak i zarówno nazwa tego pliku, czyli id+".zip"
zip - to GZIPOutputStream
I nie wiem co jest nie tak. Czyżbym zapomniał zamknąć jakiegoś stream-a, robię coś nie tak ?Może to że używam GZIP a nadaje mu rozszerzenie zip... Bo Archiwum ma rozmiar i tworzy się ale niestety nie da się go poprawnie rozpakować. Niestety forma zip jest wymagany na potrzeby innych procesów. Jeśli nie da się tego zrobić tak jak przedstawiłem, to ogromnie proszę o pomoc w przedstawieniu sposobu kompresji pliku do Zip-a.
Pozdrawiam