遍历目录,查找文件并复制到另一目录

编写一个程序,把某个目录下所有的带.java文件拷贝到另一个目录中,拷贝成功后,把后缀名是.java改成.txt

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.InputStreamReader;
 9 import java.io.OutputStreamWriter;
10 
11 public class CopyFileDemo {
12     public static void main(String[] args) {
13         File file = new File("D://code");
14         String suffix = ".java";
15         findFile(file, suffix);
16         System.out.println("文件复制成功!");
17     }
18     /**
19      * 遍历目录,找出后缀为.java的文件
20      * 
21      * @param file
22      * @param suffix
23      */
24     public static void findFile(File file, String suffix) {
25         if (file == null)
26             return;
27         if (file.isDirectory()) {// 如果file对象是目录
28             File[] files = file.listFiles();
29             if (files != null) {
30                 for (File f : files) {
31                     findFile(f, suffix);
32                 }
33             }
34         } else {// 如果file对象是文件
35             //获取jpg路径名
36             String path = file.getPath().toLowerCase();
37             //截取jpg文件名前缀
38             String prefixName = path.substring(path.lastIndexOf("\\")+1, path.indexOf("."));
39             String newFileName = prefixName + ".txt";
40             if (path.endsWith(suffix)) {
41                 // 如果文件是java文件,复制到另一个目录
42                 File targetFile = new File("F:\\test" + File.separator + newFileName);
43                 copyFile(file, targetFile);
44             }
45         }
46     }
47     /**
48      * 复制文件到另一个目录,同时修改文件后缀为.txt
49      * 
50      * @param sourceFile
51      * @param targetFile
52      * @param prefix
53      * @param suffix
54      */
55     public static void copyFile(File sourceFile, File targetFile) {
56         String line = null;
57         BufferedReader br = null;
58         BufferedWriter bw = null;
59         try {
60             br = new BufferedReader(new InputStreamReader(new FileInputStream(
61                     sourceFile)));
62             bw = new BufferedWriter(new OutputStreamWriter(
63                     new FileOutputStream(targetFile)));
64             while ((line = br.readLine()) != null) {
65                 bw.write(line);
66                 bw.flush();
67             }
68         } catch (FileNotFoundException e) {
69             e.printStackTrace();
70         } catch (IOException e) {
71             e.printStackTrace();
72         } finally {
73             try {
74                 br.close();
75                 bw.close();
76             } catch (Exception e) {
77                 e.printStackTrace();
78             }
79         }
80     }
81 }

 

posted @ 2014-12-12 11:41  zhuxian300c  阅读(658)  评论(0编辑  收藏  举报