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 + " %");// 显示在进度条上

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-31 04:43:13

Java中读取文件进度条的实现的相关文章

Java上传文件进度条的实现方法(附demo源码下载)_java

本文实例讲述了Java上传文件进度条的实现方法.分享给大家供大家参考,具体如下: 东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以实现实时更新已上传文件的大小,有了这个还说什么呢? 这里给出代码: package lc.progress; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import lc.

java swing拷贝文件进度条

今天写了一个Java swing 进度条的例子项目. 该项目使用maven构建 项目名称:copyfile_progressbar.结构如下:  功能是拷贝文件.界面如下:  该界面是测试界面,如何测试呢?点击菜单中的"测试",见下图:   点击[暂停],可以使进度条暂停:     进度条走完的界面如下:   该项目的功能是拷贝文件,拷贝文件的同时显示进度:   该项目依赖我另外的项目:  

exception-java中读取文件提示找不到指定路径???

问题描述 java中读取文件提示找不到指定路径??? import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class FileCombine { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub FileManager afilemg = new Fi

java中读取一个文件一中的内容,这个文件的每行都是一个词,在文件二中查找文件一中词出现的次数

问题描述 java中读取一个文件一中的内容,这个文件的每行都是一个词,在文件二中查找文件一中词出现的次数 String lineTxt1 = new String(); String lineTxt2 = new String(); while((lineTxt1 = bufferedReader1.readLine()) != null) { while((lineTxt2 = bufferedReader2.readLine()) != null){ if(lineTxt2.indexOf(

Java 中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 作者:Jeru Liu日期:November 29,2000版本:1.0 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的.InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputSt

Java中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行 一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的. InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputStream 中我们有 FileOutputStream 这个对象. 用F

Html5 中的环形进度条

问题描述 Html5 中的环形进度条 有谁做过的吗? 求帮忙! 环形一定要是多种颜色的 解决方案 http://www.2cto.com/kf/201504/390770.htmlhttp://www.htmleaf.com/html5/html5-canvas/201505271918.html 解决方案二: 我最近也在弄类似的效果(时光轴),讲一下想法: 1.你要的渐变色其实是一个背景色渐变的圆形(百度一下) 2.用另一个稍小的黑色圆形遮盖掉有渐变色背景的圆 3.进度控制可以用旋转的三角形或

Java中实现文件上传下载的三种解决方案(推荐)_java

java文件上传与文件下载是程序开发中比较常见的功能,下面通过本文给大家介绍Java中实现文件上传下载的三种解决方案,具体详情如下所示: 第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname=null; String fileAddre="/numUp"; try { InputStream stream = file.getInputStream(

Ajax上传文件进度条Codular

现在,人们喜欢在浏览网页时做一些其他事情而不离开该网页,这通常是通过ajax来实现.大多数情况,人们使用jQuery来实现,但是随着浏览器的进步,人们比不需要这么做.这里我们将介绍如何在不离开页面的情况下将文件上传到服务器,我们将使用与我们之前的文章中使用的相同的后端PHP代码. 该脚本将上传文件至服务器,同时显示上传进度,并最终返回上传文件的链接地址.在某些情况下,你可能想要返回上传文件的id或者其他的应用信息. Note: 该代码不支持较老的ie浏览器,通过Can I use我们只支持ie1