java讀取文件顯示進(jìn)度條的實(shí)現(xiàn)方法
實(shí)現(xiàn)這個(gè)功能比較簡單,用到的類有兩個(gè):ProgressMonitorInputStream(主要是整個(gè)類) 和 ProgressMonitor ,它們在javax.swing中
大體思路,你要首先知道整個(gè)文件的大小,和當(dāng)前已經(jīng)讀取文件的大小,獲得整個(gè)文件大小的方法
ProgressMonitorInputStream monitor;
/**
* @param 表示此進(jìn)度條要依附在哪個(gè)組件上
* @param 顯示在此進(jìn)度條上的消息
* @param 需要監(jiān)控的輸入流
*/
monitor = new ProgressMonitorInputStream(null, "Loading ",new FileInputStream("filename path"));
int all = monitor.available();//整個(gè)文件的大小
int in = monitor.read(data);//每次讀取文件的大小
例如:你每次讀一行str=in.readLine();則data=str.instr.getBytes()+1;這里+1,主要是為了獲得換行符的字節(jié)數(shù),否則,最后獲得的進(jìn)步無法達(dá)到100%
int readed=0;//表示已經(jīng)讀取的文件
reader+=in;//累加讀取文件大小
計(jì)算進(jìn)度:
float process = (float) readed / all * 100;// 算出百分比
窗口顯示:
progressMonitor.setNote("archived " + process + " %");// 顯示在進(jìn)度條上
相關(guān)文章
Spring Session實(shí)現(xiàn)分布式session的簡單示例
本篇文章主要介紹了Spring Session實(shí)現(xiàn)分布式session的簡單示例,具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-05-05
springmvc Rest風(fēng)格介紹及實(shí)現(xiàn)代碼示例
這篇文章主要介紹了springmvc Rest風(fēng)格介紹及實(shí)現(xiàn)代碼示例,rest風(fēng)格簡潔,分享了HiddenHttpMethodFilter 的源碼,通過Spring4.0實(shí)現(xiàn)rest風(fēng)格源碼及簡單錯誤分析,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
詳解OpenAPI開發(fā)如何動態(tài)的添加接口實(shí)現(xiàn)
這篇文章主要為大家介紹了OpenAPI開發(fā)如何動態(tài)的添加接口實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
完全解析Java編程中finally語句的執(zhí)行原理
這篇文章主要深度介紹了Java編程中finally語句的執(zhí)行原理,細(xì)致講解了finally在異常處理中的流程控制作用,需要的朋友可以參考下2015-11-11
手把手教你搭建第一個(gè)Spring Batch項(xiàng)目的步驟
這篇文章主要介紹了手把手教你搭建第一個(gè)Spring Batch項(xiàng)目的步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Spring Cloud應(yīng)用實(shí)現(xiàn)配置自動刷新過程詳解
這篇文章主要介紹了Spring Cloud應(yīng)用實(shí)現(xiàn)配置自動刷新過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
logback FixedWindowRollingPolicy固定窗口算法重命名文件滾動策略
這篇文章主要介紹了FixedWindowRollingPolicy根據(jù)logback 固定窗口算法重命名文件滾動策略源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

