Ich lade einige Dateien in meiner Java App herunter und implementiere einen Download Monitor Dialog. Aber vor kurzem habe ich alle Dateien mit gzip komprimiert und jetzt ist der Download-Monitor irgendwie kaputt.Monitor GZip Download Fortschritt in Java
Ich öffne die Datei als GZIPInputStream
und aktualisieren Sie den Download-Status nach jedem kB heruntergeladen. Wenn die Datei eine Größe von 1 MB hat, geht der Fortschritt z.B. 4MB, das ist die unkomprimierte Größe. Ich möchte den komprimierten Download-Fortschritt überwachen. Ist das möglich?
EDIT: Um zu verdeutlichen: Ich lese die Bytes aus dem GZipInputStream, die die unkomprimierten Bytes sind. Das gibt mir am Ende nicht die richtige Größe.
Hier ist mein Code:
URL url = new URL(urlString);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.connect();
...
File file = new File("bibles/" + name + ".xml");
if(!file.exists())
file.createNewFile();
out = new FileOutputStream(file);
in = new BufferedInputStream(new GZIPInputStream(con.getInputStream()));
byte[] buffer = new byte[1024];
int count;
while((count = in.read(buffer)) != -1) {
out.write(buffer, 0, count);
downloaded += count;
this.stateChanged();
}
...
private void stateChanged() {
this.setChanged();
this.notifyObservers();
}
Vielen Dank für jede Hilfe!
Ich lese die Bytes von der 'GZipInputStream' heruntergeladen, die der unkomprimierte Stream ist. Dies ist also nicht die tatsächliche Dateigröße, die heruntergeladen wird. – dbrettschneider
Ok, jetzt sehe ich es. – SJuan76