-2
Javaでディスクに書き込まずにファイルを解凍して再圧縮するプログラムを作成しようとしています。これまでのところ、ディスクに書き込むことなく解凍して再圧縮する - Java
public void unzipFile(String filePath) {
FileInputStream fis = null;
ZipInputStream zipIs = null;
ZipEntry zEntry = null;
try {
fis = new FileInputStream(filePath);
zipIs = new ZipInputStream(new BufferedInputStream(fis));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
while ((zEntry = zipIs.getNextEntry()) != null) {
zos.putNewEntry(zEntry);
zos.write(...);
zos.close();
}
} catch (IOException e){
e.printStackTrace();
}
}
}
私の問題は、ZipOutputStreamにZipEntryを書き込む方法がわかりません。 "java.util.zip.ZipException:無効なエントリサイズ(予想125673、しかし0バイトを持っています)"というエラーが表示されます。誰かが私を正しい方向に向けることができますか?
まあ、まず第近い() ''ループ内で呼び出すことはありません。ここ
が実行されている例です。 – Andreas
このメソッドをどのように呼びますか? –
'"まず、ループ内でclose()を呼び出さないでください。 " - 真剣に –