質問: fis.read(buf))) { zos.write(buf, 0, ilen); } zos.flush(); zos.closeentry(); fis.close(); } } catch(exception e) { system.err.println(e); } finally { try { zos.close(); // ※1 fos.close(); // ※2 } catch(exception e) { system.err.println(e); } } } サイズの小さいファイルや、 特定のサイズのファイル(13k程度)を対象とした時、 高い確率で、空の圧縮ファイルが作成される事があります。 ログを出力しながら確認すると、このような現象が起きた場合、 圧縮ファイルをcloseする直前(※1)では作成されたファイルはサイズがあるのですが、 圧縮ファイルをcloseした直後(※2)ではファイルのサイズが0になってしまいます。 また、2台あるサーバの内、1台だけでこの現象が起こっています。 javaのバージョンは1.3です。 何故このような現象が起こってしまうのか、 ご存知の方がいらっしゃいましたら教えていただけないでしょうか。 宜しくお願いします。
回答: まったく関係ないかもしれませんが(=w=; http://java.sun.com/j2se/1.3/ja/releasenotes.html#131_01 #4764567 この現象で、アプリ自体が落ちて正常にcloseされなかったため、ファイルが消えたとか、。