import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 题目:
统计一个文件夹下的txt文件个数,包括所有子文件夹内,
并将它们全部复制到D盘任意目录下
分析:
1.先创建目的地file对象
2.创建数据源file对象
*/
public class IODemo {
private static int count;
public static void main(String[] args) throws IOException{
File file1 = new File("E:\\黑马\\day02");
File file2 = new File("D:\\黑马");
//创建一个方法来复制文件
copyFile(file1,file2);
System.out.println("文件复制完!");
System.out.println(count);
}
public static void copyFile(File file1,File file2) throws IOException{
//获得文佳或文件夹的数组
File[] files = file1.listFiles();
//进行遍历,得到每一个文件或文件夹
for (File file : files) {
String name = file.getName();
File newfile = new File(file2 ,name);
//判断file是否为文件
if(file.isFile()){
if(name.contains(".java")){
//创建输入流
BufferedReader in = new BufferedReader(new FileReader(file));
//创建输出流
BufferedWriter out = new BufferedWriter(new FileWriter(file2));
String buffer = null;
while((buffer = in.readLine()) != null){
out.write(buffer);
out.flush();
}
//关闭流
in.close();
out.close();
count++;
}
}else{
//创建一个文件夹
newfile.mkdirs();
//调用copyFile()方法
copyFile(file,newfile);
}
}
}
}
|
|