Java中讀取文件進度條的實現

實現功能描述:
  當讀取一個大文件時,一時半會兒沒法看到讀取結果,就須要顯示一個進度條,是程序員明白已經讀了多少文件,能夠估算讀取還須要多少時間。
  實現這個功能比較簡單,用到的類有兩個:ProgressMonitorInputStream(主要是整個類) 和 ProgressMonitor ,它們在javax.swing中
  大致思路,你要首先知道整個文件的大小,和當前已經讀取文件的大小,得到整個文件大小的方法
ProgressMonitorInputStream monitor;/*** @param 表示此進度條要依附在哪一個組件上* @param 顯示在此進度條上的消息* @param 須要監控的輸入流*/monitor = new ProgressMonitorInputStream(null, "Loading ",new FileInputStream("filename path"));int all = monitor.available();//整個文件的大小int in = monitor.read(data);//每次讀取文件的大小    
  例如:你每次讀一行str=in.readLine();則data=str.instr.getBytes()+1;這裏+1,主要是爲了得到換行符的字節數,不然,最後得到的進步沒法達到100%
  int readed=0;//表示已經讀取的文件
  reader+=in;//累加讀取文件大小
  計算進度:
  float process = (float) readed / all * 100;// 算出百分比
  窗口顯示:
  progressMonitor.setNote("archived " + process + " %");// 顯示在進度條上
相關文章
相關標籤/搜索