Hi,
ich downloade eine Datei aus dem Internet. Damit der User nicht denkt es passiert nichts, wäre es schön, wenn er eine Fortschrittsanzeige gezeigt bekäme.
Kann man einem Stream überhaupt ansehen, wie lange er noch ist?
Ich verwende folgenden Code:
Grüße
Felix
ich downloade eine Datei aus dem Internet. Damit der User nicht denkt es passiert nichts, wäre es schön, wenn er eine Fortschrittsanzeige gezeigt bekäme.
Kann man einem Stream überhaupt ansehen, wie lange er noch ist?
Ich verwende folgenden Code:
Java:
public class Downloader extends Thread{
String url, file;
DownloadListener downloadlistener;
public Downloader(String url, String file, DownloadListener dl) {
this.url = url;
this.file = file;
downloadlistener = dl;
}
public void run() {
try {
BufferedInputStream bis = new BufferedInputStream(new URL(url).openStream());
FileOutputStream fos = new FileOutputStream(file);
//DEBUG
System.out.println("Starte Download");
for (int i; (i = bis.read()) != -1;) {
if (! isInterrupted()) {
fos.write(i);
} else {
break;
}
}
fos.close();
bis.close();
//DEBUG
System.out.println("Download beendet");
downloadlistener.downloadCompleted();
} catch (IOException ioe) {
//DEBUG
ioe.printStackTrace();
}
}
}
Grüße
Felix