У меня есть файл, который был сжат (zip) приложением .net с использованием библиотеки system.io.compression.gzipstream
. Я попытался распаковать (разархивировать) его, используя java.util.zip.GZIPInputStream
в java. он бросил:распаковать (распаковать) файл в java, сжатый .net system.io.compression.gzipstream
java.io.EOFException на java.util.zip.GZIPInputStream.readUByte (GZIPInputStream.java:246) в java.util.zip.GZIPInputStream.readUShort (GZIPInputStream.java:237) на java.util.zip.GZIPInputStream.readUInt (GZIPInputStream.java:229) в java.util.zip.GZIPInputStream.readTrailer (GZIPInputStream.java:197) в java.util.zip.GZIPInputStream.read (GZIPInputStream .java: 92) at java.io.FilterInputStream.read (FilterInputStream.java:90) at juwdemoproj.FileWriterTest.gunzipIt (FileWriterTest.java:353) at juwdemoproj.FileWriterTes t.main (FileWriterTest.java:51)
Мой пример кода:
public static void gunzipIt() {
byte[] buffer = new byte[1024];
String zipFilePath = "C:\\Juw\\JR\\file\\output\\020030214112016.zip";
String destDirectory = "C:\\Juw\\JR\\file\\output\\targetUnzip";
try {
GZIPInputStream gzis =
new GZIPInputStream(new FileInputStream(zipFilePath));
FileOutputStream out = new FileOutputStream(destDirectory);
int len;
while ((len = gzis.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
gzis.close();
out.close();
System.out.println("Done");
} catch (IOException ex) {
ex.printStackTrace();
}
}
Вопрос: - Можно ли распаковать файл в Java, когда файл был сжат .net заявление? - Любая zip-библиотека, которая может достичь вышеуказанного требования?
Thanks
ZIP и GZip - два разных и несовместимых формата. Я предлагаю вам открыть .zip как ZIP, а не как .gz-файл. –
@PeterLawrey Ну, OP сказал, что он был сжат с использованием 'gzipstream' .NET, так что может быть просто, что расширение файла неверно. В любом случае, OP, похоже, запутывает Zip vs GZip, поскольку zipped-файл должен иметь расширение '.zip', а файл gzipped должен иметь расширение' .gz'. – Andreas
привет @PeterLawrey, да, мой клиент сохранит его как расширение .zip, но они используют библиотеку gzipstream. я вижу это в своем коде. – cumibulat