今天学习遇到的一个小作业,
利用刚刚学习的IO流将一个位置的文件夹中所有文件
复制到另外一个文件夹中
思路:
判断 即将 复制的文件是文件夹还是文件
遍历需要复制的源文件夹
如果是文件夹,就通过流创建一个同样的子文件夹
如果是文件,就复制过去
接下来上代码:
public static void main(String[] args) {
//复制粘贴整个文件夹
String copy="D:/Test";
String Paste="D:/Test1";
//参数 (复制的源文件夹 , 粘贴的文件夹)
copyDir(copy,Paste);
//如果被粘贴位置有该文件,文件将会覆盖
}
//复制整个文件夹的方法
public static void copyDir(String formDir,String toDir){
try {
//创建目录的File对象
File file_copy=new File(formDir);
//判断如果它是不是一个目录
if(!file_copy.isDirectory()){
//不是目录就不复制
return;
}
//创建目录的对象
File file_paste=new File(toDir);
//如果目录不存在
if(!file_paste.exists()){
file_paste.mkdir();
//创建目录
}
//获取源目录下的File对象列表
File[] files=file_copy.listFiles();
for(File file:files){
//遍历里面的对象
//且拼接起来
String strForm=formDir+File.separator+file.getName();
System.out.println("需要复制的文件"+strForm);
String strTo=toDir+File.separator+file.getName();
System.out.println("粘贴下来的文件"+strTo+"\n");
//判断是目录还是文件
//判断是否是目录
if(file.isDirectory()){
//递归复制目录方法
copyDir(strForm,strTo);
}
//判断是否是文件
if(file.isFile()){
//是文件,就进行复制
System.out.println("正在进行复制文件"+file.getName());
copy(strForm,strTo);
}
}
} catch (IOException e) {
System.out.println("出现错误可能是拷贝的文件不存在");
e.printStackTrace();
}
}
//复制文件方法
public static void copy(String sbr,String sbw) throws IOException {
BufferedReader br=new BufferedReader(new FileReader(sbr));
BufferedWriter bw=new BufferedWriter(new FileWriter(sbw));
String a=null;
while ((a=br.readLine())!=null){
bw.write(a);//输出
bw.newLine();//换行
}
IOUtils.closeAll(bw,br);
}
十分简单的代码
仅供参考,,,