import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
/**
* 测试复制目录
* @author xiayunan
*
*/
public class TestCopyCatalog {
private static String FILE_SEP = File.separator;
/**
* 目录复制
* @param originalDir
* @param targetDir
*/
public static void CopyDir(String originalDir,String targetDir){
File tarFile = new File(targetDir);
if(!tarFile.exists()){
tarFile.mkdir();
}
File dir = new File(originalDir);
if(dir.isDirectory()){
File[] files = dir.listFiles();
for(File file:files){
if(file.isDirectory()){
File cFile = new File(targetDir+FILE_SEP+file.getName());
cFile.mkdirs();
String temOriginalDir = originalDir+FILE_SEP+file.getName();
String temTargetDir = cFile.getPath();
CopyDir(temOriginalDir,temTargetDir);
}else{
BufferedReader br = null;
PrintWriter pw = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
System.out.println(targetDir+FILE_SEP+file.getName());
File sFile = new File(targetDir+FILE_SEP+file.getName());
if(!sFile.exists()){
sFile.createNewFile();
}
pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(sFile),"utf-8"));
int a = 0;
while((a = br.read())!=-1){
pw.write(a);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(pw!=null){
pw.close();
}
}
}
}
}
}
public static void main(String[] args) {
String originalDir = "F:\\testio";
String targetDir = "F:\\testiocopy";
CopyDir(originalDir,targetDir);
System.out.println("复制完毕!");
}
}