题目:使用多线程实现多个文件同步复制功能,并在控制台显示复制的进度,进度以百分比表示。例如:把文件A复制到E盘某文件夹下,在控制台上显示“XXX文件已复制10%”,“XXX文件已复制20%”……“XXX文件已复制100%”,“XXX复制完成!”
代码如下:
1、Runnable接口方式
package com.day505.testdemo.exam;
import java.io.*;
import java.text.DecimalFormat;
public class FileCopy implements Runnable {
//表示源文件
public File oldFile;
//表示目标文件
public File newFile;
public FileCopy(String oldFile, String newFile) {
this.oldFile = new File(oldFile);
this.newFile = new File(newFile);
}
@Override
public void run() {
//创建文件输入输出流
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try {
fileInputStream = new FileInputStream(oldFile);
fileOutputStream = new FileOutputStream(newFile);
//声明一个字节数组,将每次读取的数据放入 字节数组的长度自己设定
//如果要读取的文件中的数据比较少的话,建议设的值小一些,这样可以看