复制D:\\day05目录下的所有文件到D:\\copy,并将.txt文件改为.java文件。

**解题思路:
1.首先定义一个静态的refile方法,参数传入两个文件路径
2.要复制目录下的所有文件,首先查询File类的方法,可以使用listFiles方法得到目录下的文件
3.想到这问题基本就解决了,遍历目录下的所有文件,如果不是.txt文件,那么就直接利用流进行复制(复制路径要进行路径名的重设,也就是拼串操作,具体见代码)如果是.txt文件,那么就要将文件名替换为.java**
 1 import java.io.File;
 2 import java.io.FileNotFoundException;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 import java.io.Reader;
 7 import java.io.Writer;
 8 
 9 public class FileDemo {
10     public static void main(String[] args) throws IOException {
11         File file = new File("D:\\day05");
12         File file1 = new File("D:\\copy");
13         refile(file,file1);
14     
15 
16     }
17     public static void refile(File file,File file1) throws IOException{
18         
19         File[] listFiles = file.listFiles();
20         for (int i = 0; i < listFiles.length; i++) {
21             File file2 = listFiles[i];
22             if(file2.isDirectory()){
23                 refile(file2,file1);
24             }else{
25                     String name = file2.getName();
26                     if(name.endsWith(".txt")){
27                         String name1 = name.replace(".txt", ".java");
28                         Reader reader = new FileReader(file2);
29                         Writer writer = new FileWriter(file1+"\\"+name1);
30                         char[] byt = new char[10];
31                         int o = 0;
32                         while((o=reader.read(byt))!=-1){
33                             writer.write(byt,0,o);
34                         }
35                         System.out.println(file2.getName()+"复制成功");
36                     }else{
37                         Reader reader = new FileReader(file2);
38                         Writer writer = new FileWriter(file1+"\\"+name);
39                         char[] byt = new char[10];
40                         int o = 0;
41                         while((o=reader.read(byt))!=-1){
42                             writer.write(byt,0,o);                    
43                     }
44                         System.out.println(file2.getName()+"复制成功");
45                     }
46             }
47         
48     }
49     }
50 }
View Code

 

posted @ 2018-09-09 14:21  南岭寒  Views(291)  Comments(0Edit  收藏  举报