BufferedWriter Dauer in ProgressBar ausgeben?

xRaizzzer

Mitglied
Guten Tag liebe Community!
Ich hätte gerne eine Frage, wie ich vom BufferedWriter die Dauer rausbekomme und dies in einer ProgressBar ausgebe, mein Code sieht derzeit so aus:

Java:
public class Download {
	public void DownloadString(String txtfield) {
		try {
			URL url;
			url = new URL("http://pastebin.com/raw.php?i=" + txtfield.toString());
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            BufferedWriter writer = new BufferedWriter(new FileWriter(txtfield.toString() + ".txt"));
            Dumper dumb = new Dumper();
            dumb.setProgress(2); //Hier Dauer ausgeben
            if(!txtfield.isEmpty()) {
                String line;
                while ((line = reader.readLine()) != null) {
                    writer.write(line);
                    writer.newLine();
                }
                JOptionPane.showMessageDialog(null, "Erfolgreich runtergeladen!");
                reader.close();
                writer.close();
            } else {
            	JOptionPane.showMessageDialog(null, "Bitte gebe eine PasteID ein!");
            }
		}
		catch (Exception exe) {
			JOptionPane.showMessageDialog(null, exe.toString());
		}
	}
}

Gibt es da eine irgendwie eine Möglichkeit die Dauer auszugeben bzw. die Dauer zum schreiben der Datei?
Mein Code macht ja nichts außer xxx aufrufen -> Quellcode anschauen -> Datei erstellen -> Datei schreiben
MfG.
 
Hallo,

meinst du mit "Dauer" die Restdauer des Vorgangs? Die Dauer gibt man eigentlich nicht mit einer ProgressBar an, mit einer Progressbar gibt man nur an, wie weit der Vorgang insgesammt ist, deswegen heißt sie auch "Fortschrittsbalken".

Den Fortschritt in Prozent errechnest du mit (gelesene Datenmenge / Gesamtdatenmenge) * 100. Den Wert musst du dann bei jedem Schleifendurchgang der ProgressBar übergeben.

Bei der Restdauer wird es dann etwas komplizierter, dazu musst du die eigentliche Schreibgeschwindigkeit messen, indem du erst die Zeit misst, wie lange es dauert, eine bestimmte Menge Daten zu schreiben und anschließend berechnest du daraus die Schreibgeschwindigkeit, und mit der Schreibgeschwindigkeit berechnest du die Dauer, wie lange es dauert, die verbleibende Datenmenge zu schreiben. Aber das nicht ganz so einfach.
 

Zurück
Oben