涉及到的知识点
1.IO流输入流(InputStream)的应用。
2.IO流输出流(OutputStream)的应用。
代码呈现
import java.io.*;
public class DirCopy {
public static void main(String[] args) {
File finit = new File("C:\\Users\\11310\\todaytest\\d1");
File fcopy = new File("copyd");
copyDir(finit,fcopy);
}
//文件的拷贝代码
public static void copyFile(File f1,File f2){
InputStream in = null;
OutputStream os = null;
try {
in = new FileInputStream(f1);
os = new FileOutputStream(f2);
byte[] flush = new byte[1024];
int len = -1;
while((len = in.read(flush))!=-1){
os.write(flush,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if(os !=null){
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//用递归实现文件夹的拷贝
public static void copyDir(File f1,File f2){
if(f1.isDirectory()){
File temp = new File(f2,f1.getName());
temp.mkdirs();
for(File f:f1.listFiles()){
copyDir(f,temp);
}
}else{
File newFile = new File(f2,f1.getName());
copyFile(f1,newFile);
}
}
}