使用多线程和IO流编写文件复制功能类
来源:互联网 发布:台湾旅游软件 编辑:程序博客网 时间:2024/05/21 07:02
CopyFile类
package copyfile;import java.io.*;import java.text.DecimalFormat;/** * 文件复制类 * @author Administrator * */public class FileCopy extends Thread { private File src;//待读取的源文件 private File dest;//待写入的目标文件 public FileCopy(String src,String dest){ this.src = new File(src); this.dest = new File(dest); } @Override public void run() { FileInputStream is = null; FileOutputStream os = null; try { is = new FileInputStream(src); os = new FileOutputStream(dest); byte[] b = new byte[1024]; int length = 0; //获取源文件大小 long len = src.length(); //已复制文件的字节数 double temp = 0 ; //数字格式化,显示百分比 DecimalFormat df = new DecimalFormat("##.00%"); while((length = is.read(b))!=-1){ //输出字节 os.write(b, 0, length); //获取已下载的大小,并且转换成百分比 temp += length; double d = temp/len; System.out.println(src.getName()+"已复制的进度:"+df.format(d)); } System.out.println(src.getName()+"复制完成!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { if (is != null) { is.close(); } if(os!=null){ os.close(); } } catch (Exception e) { e.printStackTrace(); } } }}
测试类
package copyfile;
public class Test {
public static void main(String[] args) {
FileCopy cf = new FileCopy("D:\\1.txt","D:\\test\\1.txt");
FileCopy cf2 = new FileCopy("D:\\2.txt","D:\\test\\2.txt");
FileCopy cf3 = new FileCopy("D:\\3.txt","D:\\test\\3.txt");
cf.start();
cf2.start();
cf3.start();
}
}
阅读全文
0 0
- 使用多线程和IO流编写文件复制功能类
- 使用标准io实现文件复制功能
- 使用IO流对文件进行编写功能
- 用IO流实现文件复制功能
- 用IO流实现文件复制功能
- java--IO 使用带缓冲功能的字节流复制文件
- IO流文件复制
- IO流文件复制
- IO流复制文件
- IO流---文件复制
- 标准io的文件复制功能
- java的IO流复制文件和读取文件内容
- 使用多线程实现文件复制
- Java io初探(1),使用java流复制文件
- java 使用io流对象实现文件复制
- JAVA IO使用高速缓冲区的字节流复制文件
- Io流,文件复制与文件夹复制
- 《java----IO流---文件复制》
- Fragment生命周期
- Android APP优化—Android程序员必须掌握
- ionic应用在mac上使用xcode7.0进行iphone真机调试
- mybatis调用存储过程返回多个结果集
- javascript中attachEvent、addEventListener用法和区别
- 使用多线程和IO流编写文件复制功能类
- eclipse中的图片路径 image
- php 导入excel
- 面试题54:表示数值的字符串
- Nginx的一些配置收藏
- 海量数据的解决方案
- UNITY 异步加载场景的一个例子
- tp3.2中微信支付中将调用支付处简单封装
- STL