質問: new GZip(); zip.run(args); } } ### 出力 $ java GZip GZip.java GZip.java : 1244 bytes -> 10 bytes ( 0 %) ### 補足情報 圧縮前に宣言された File zipFile の容量を計測しているのはではないかと思っています。 しかし、どうやって出力されたzipファイルの容量を測定したらいいのかわかりません。
回答: ``` //ファイル名: 00 bytes バイト数取得 long orizinalFileVolume = originalFile.length(); long zipFileVolume = zipFile.length(); long per = zipFileVolume / orizinalFileVolume * 100; //圧縮後のバイト数取得 %表示 System.out.printf("%s : %s bytes -> %s bytes ( %s %% )%n", arg,orizinalFileVolume, zipFileVolume, per); in.close(); out.close(); ``` ↑ファイルサイズを取得する前に、閉じましょう。 【Java入門】Javaのファイル出力方法 詳細まとめ - エンジニアの入り口 > > ### ファイルを閉じる > > > この処理を実行すると、実際のファイルに文字列が書き込まれ、ファイルが閉じられる。 > > > ``` // 先に閉じる。 in.close(); out.close(); //ファイル名: 00 bytes バイト数取得 long orizinalFileVolume = originalFile.length(); long zipFileVolume = zipFile.length(); long per = zipFileVolume / orizinalFileVolume * 100; //圧縮後のバイト数取得 %表示 System.out.printf("%s : %s bytes -> %s bytes ( %s %% )%n", arg,orizinalFileVolume, zipFileVolume, per); ```