复制文件夹d:/sxtjava下面所有文件和子文件夹内容到d:/sxtjava2。
提示:涉及单个文件复制、目录的创建、递归的使用
package study_02;
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;
public class Test3 {
public static void main(String[] args) {
copyDirectory("C:\\Users\\liweimo\\eclipse-workspace\\study_02", "C:\\Users\\liweimo\\eclipse-workspace\\study_03");
}
public static void copyFile(String src,String dec) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
FileInputStream fis = null;
FileOutputStream fos = null;
int temp = 0;
try {
fis = new FileInputStream(src);
fos = new FileOutputStream(dec);
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
while ((temp = bis.read()) != -1) {
bos.write(temp);
}
}catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
if (bos != null) {
bos.close();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
if (bis != null) {
bis.close();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
if (fos != null) {
fos.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (fis != null) {
fis.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void copyDirectory(String src, String dec) {
File srcFile = new File(src);
if (srcFile.isDirectory()) {
File newDirtory = new File(dec);
newDirtory.mkdir();
File[] files = srcFile.listFiles();
for (File file : files) {
String sourcePath = src + "\\" +file.getName();
String destPath = dec + "\\" +file.getName();
if (file.isDirectory()) {
copyDirectory(sourcePath,destPath);
}else {
copyFile(sourcePath,destPath);
}
}
}else {
copyFile(src, dec);
}
}
}