package com.mipo.thread;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* 复制文件夹
* @author Administrator
*
*/
public class Assignment {
public static void dirCopy (File file1,File file2) {//file1源文件,file2目的文件
//创建抽象路径名指定的目录
file2.mkdir();
if (file1.isDirectory()) {//如果file1代表目录
File[] lists = file1.listFiles();//返回file1下的目录和文件数组
for (int i = 0; i < lists.length; i++) {
if (lists[i].isDirectory()) {
//复制目录
dirCopy(lists[i],new File(file2.getAbsoluteFile()+ "\\"+lists[i].getName()));
}else {
//复制文件
fileCopy(lists[i],file2.getAbsolutePath()+File.separator+lists[i].getName());
}
}
}
}
//复制文件
public static void fileCopy (File file1,String f2) {
File file2 = new File(f2);
if (!file2.exists()) {
try {
file2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(file1));
bos = new BufferedOutputStream(new FileOutputStream(file2));
int i = bis.read();//读取数据
while (-1 != i) {
bos.write(i);//写入数据
i = bis.read();//再读
}
bos.flush();//刷新输出流
bos.close();//关闭IO流
bis.close();
System.out.println("文件复制成功");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
long startTime = System.currentTimeMillis();//程序开始时间
File file1 = new File("F:\\Media");
File file2 = new File("F:\\Media1");
if (file1.exists() && file2.exists()) {
System.out.println("Yes");
}
dirCopy(file1,file2);
long endTime = System.currentTimeMillis();//程序结束时间
long time = endTime-startTime;//程序运行时间
System.out.println("单线程复制文件所需时间"+time+"ms");
}
}
IO流复制文件夹
最新推荐文章于 2024-01-08 22:26:03 发布