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()'你都會用壓縮文件添加一些數據。它在這一點上得出了它正在研究的任何結論。 –