ich etwas falsch mit meinem Code nicht sehen, aber wenn ich für die Größe der komprimierten Datei in der Zielposition überprüfen, ich sehe nur, dass die Dateigröße von 2 oder 3 KB reduziert nur wurde die weniger Art und Weise ist auch für große Dateien skalieren auf etwa 650 MB.Wie komprimiere ich große Dateien mit 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");
}
Vielen Dank im Voraus.
BTW jedes Mal, wenn Sie 'flush()' aufrufen, fügen Sie ein paar Daten mit komprimierten Dateien hinzu. Es schließt alles ab, woran es gerade arbeitet. –