一:复制单级文件
package 复制文件;
import java.io.*;
public class 复制单级文件 {
public static void main(String[] args) throws IOException{
//这是要复制的文件
File f = new File("D:\\c");
//获取要复制的文件的名字
String fName = f.getName();
//目的目录在TEXT下,名字与要复制的文件的名字相同
File f2 = new File("TEXT",fName);
//如果目的目录不存在,则创建文件
if(!f2.exists()){
f2.mkdir();
}
//获取源目录里面的File集合并遍历
File[] list = f.listFiles();
for(File src:list){
//保持名称相同
String name = src.getName();
File df = new File(f2,name);
copyFile(df,src);
}
}
private static void copyFile(File df, File src) throws IOException {
//
BufferedReader bf = new BufferedReader(new FileReader(src));
BufferedWriter bw = new BufferedWriter(new FileWriter(df));
//
String line = null;
while((line = bf.readLine())!=null){
bw.write(line);
bw.newLine();
}
//
bf.close();
bw.close();
}
}
二:复制多级文件(递归)
package 复制文件;
import java.io.*;
public class 复制多级文件 {
public static void main(String[] args) throws IOException {
File f = new File("D:\\aa");
File f2 = new File("D:\\a\\");
copyFolder(f,f2);
}
private static void copyFolder(File f, File f2) throws IOException{
if(f.isDirectory()){
File f3 = new File(f2,f.getName());
if(!f3.exists()){
f3.mkdir();
}
File[] list = f.listFiles();
for(File file:list){
copyFolder(file,f3);
}
}else{
File newf2 = new File(f2,f.getName());
copyFile(f,newf2);
}
}
private static void copyFile(File f, File f2) throws IOException{
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));
byte[] b = new byte[1024];
int len;
while((len = bis.read(b))!=-1){
bos.write(b,0,len);
}
bis.close();bos.close();
}
}