读取大文件时,如果一时看不到读取结果,需要显示进度条。程序员知道已经读取了多少文件,并且可以估计读取需要多长时间。下面的代码可以实现这个功能。
实现这个功能比较简单。使用了两个类:ProgressMonitorInputStream(主要是整个类)和ProgressMonitor。他们的大致思路是在javax.swing中你首先要知道整个文件的大小,当前读取的文件的大小,以及获取整个文件大小的方法。
复制代码如下:ProgressMonitorinPutStream Monitor;/* * * * @param指示此进度条附加到哪个组件* @param此进度条上显示的消息* @ param要监视的输入流*/monitor=newProgressMonitorinPutStream(null,' loading ',newfile inputstream(' filename path '));int all=monitor . available();//整个文件的大小int in=monitor . read(data);//每次读取文件时文件的大小
比如:你一次读取str=in.readLine()一行;那么data=str . instr . getbytes()1;这里主要目的是获取换行符的字节数,否则最终进度不会达到100%。复制代码如下:int read=0;//指示文件reader=in已被读取;//累积读取文件大小
计算进度:复制代码如下:float process=(float)read/all * 100;//计算百分比
窗口显示:复制代码如下:progress monitor . set note(' archived ' process ' %);//显示在进度条上
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。