嗨我有一個腳本,下載是從網絡上的文件,並在這樣做時打印出進度。問題是打印出進度的行會減慢程序的執行速度,有沒有辦法阻止它?Java程序由打印行減慢
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
public class download {
public static void main(String[] args) {
try{
URL u = new URL("http://upload.wikimedia.org/wikipedia/commons/1/16/Appearance_of_sky_for_weather_forecast,_Dhaka,_Bangladesh.JPG");
FileOutputStream fos = new FileOutputStream("C://Users/xxx/Desktop/test.jpg");
InputStream is = u.openStream();
long size = u.openConnection().getContentLengthLong();
int data;
long done = 0;
while((data = is.read())!=-1){
double progress = (double) (done)/(double)(size)*100;
System.out.println(progress); // if we dont do this then then it completes fast
fos.write(data);
done++;
}
fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
這是唯一的方法嗎?我以爲我可以使用線程來解決問題? – user550
我確定有其他人,但線程顯示在控制檯應用程序的進展可能是過量的 –
K.I.S.S,直到它需要更少S –