利用缓冲流BufferedReader和BufferedWriter来实现文件拷贝功能
package com.zt;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class FileCopyDemo {
//拷贝单个文件
public static boolean copy(String srcpath,String desPath){
boolean f=true;
File file1 =new File(srcpath);
File file2 =new File(desPath);
BufferedReader breader =null;
BufferedWriter bwriter =null;
if (file1.exists()&&file1.isFile()) {
try {
FileReader reader =new FileReader(file1);
FileWriter writer=new FileWriter(file2);
breader=new BufferedReader(reader);
bwriter=new BufferedWriter(writer);
String str =breader.readLine();
while (str!=null) {
bwriter.write(str);
bwriter.newLine();
str=breader.readLine();
}
} catch (Exception e) {
f=false;
e.printStackTrace();
}finally{
try {
if (breader!=null) {
breader.close();
}
if (bwriter!=null) {
bwriter.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
return f;
}
//拷贝文件夹下的所有文件
public static boolean CopyDir(String srcpath,String desPath) {
boolean f=true;
File file1 =new File(srcpath);
File file2 =new File(desPath);
if (file1.exists()&&file1.isDirectory()) {
if (!file2.exists()) {
file2.mkdirs();
}
File[] files =file1.listFiles();
for (File file : files) {
if (file.isFile()) {
copy(file.getAbsolutePath(), desPath+"/"+file.getName());
}else {
CopyDir(file.getAbsolutePath(), desPath+"/"+file.getName());
}
}
}
return f;
}
public static void main(String[] args) {
//测试拷贝单个文件
/* String srcpath ="E:\\培训\\java\\index.jsp";
String desPath="E:\\培训\\java\\index22.jsp";
boolean f= copy(srcpath,desPath);
System.err.println(f);*/
//测试拷贝某个文件夹下所有文件
String srcpath ="E:\\培训\\project2\\mvc\\20170512bookfenyemohu";
String desPath="F:\\肖安\\20170512bookfenyemohu";
boolean f = CopyDir(srcpath,desPath);
System.out.println(f);
}
}