0
私のコードで何か問題はありませんが、コピー先の場所で圧縮ファイルのサイズを調べると、ファイルサイズが2または3KBだけ小さくなっていることがわかります。大容量のファイルは約650MBにスケールアップされます。DeflaterOutputStreamを使用して大きなファイルを圧縮する方法は?
public static void main(String[] args) throws Exception
{
FileInputStream fin = new FileInputStream("filetobecompressed.mp4");
FileOutputStream fout = new FileOutputStream("compressedfile.mp4");
DeflaterOutputStream dout = new DeflaterOutputStream(fout);
byte b[] = new byte[8192];
int r;
float tracker = 0;
while((r=fin.read(b))!=-1)
{
dout.write(b,0,r);
dout.flush();
tracker += (float)r/1000000f;
System.out.println(tracker + "MB compressed");
}
dout.finish();
fin.close();
fout.close();
dout.close();
System.out.println("Compression successful");
}
ありがとうございます。
ところで、あなたが 'flush()'を呼び出すたびに、圧縮されたファイルで少しのデータを追加します。それは、その時点で作業している何かの結論につながります。 –