java讀取文件顯示進度條的實現(xiàn)方法
實現(xiàn)這個功能比較簡單,用到的類有兩個:ProgressMonitorInputStream(主要是整個類) 和 ProgressMonitor ,它們在javax.swing中
大體思路,你要首先知道整個文件的大小,和當(dāng)前已經(jīng)讀取文件的大小,獲得整個文件大小的方法
ProgressMonitorInputStream monitor;
/**
* @param 表示此進度條要依附在哪個組件上
* @param 顯示在此進度條上的消息
* @param 需要監(jiān)控的輸入流
*/
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,主要是為了獲得換行符的字節(jié)數(shù),否則,最后獲得的進步無法達到100%
int readed=0;//表示已經(jīng)讀取的文件
reader+=in;//累加讀取文件大小
計算進度:
float process = (float) readed / all * 100;// 算出百分比
窗口顯示:
progressMonitor.setNote("archived " + process + " %");// 顯示在進度條上
相關(guān)文章
springboot 高版本后繼續(xù)使用log4j的完美解決方法
這篇文章主要介紹了 springboot 高版本后繼續(xù)使用log4j的解決方法,需要的朋友可以參考下2017-12-12idea創(chuàng)建項目沒有webapp文件夾的解決方法
本文主要介紹了idea創(chuàng)建項目沒有webapp文件夾的解決方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05PowerJob的DatabaseMonitorAspect源碼流程
這篇文章主要為大家介紹了PowerJob的DatabaseMonitorAspect源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01