黑马程序员技术交流社区

标题: 求代码 [打印本页]

作者: 白粥做底    时间: 2015-11-1 00:30
标题: 求代码
将指定目录下所有的txt文件复制到c盘下任意目录(你可以自己指定路径)并在复制后将txt后缀改成java后缀名。


作者: 大自然的搬运工    时间: 2015-11-1 01:48
/*
* 将指定目录下所有的txt文件复制到c盘下任意目录(你可以自己指定路径)并在复制后将txt后缀改成java后缀名。
*/
public class Test03 {

        public static void main(String[] args) throws IOException {

                // 定义两端的文件目录
                String old_file = "e:\\test";
                String new_file = "c:\\Demo";
                File oldfile = new File(old_file);
                File newfile = new File(new_file);

                // 查找文件中所有的。txt文件
                ArrayList<File> arr = new ArrayList<File>();
                arr = findTxt(oldfile, arr);

                // 复制到目录检查,没有则创建该目录
                if (!newfile.isDirectory())
                        newfile.mkdirs();

                // 便利集合分别复制每个文件
                for (File f : arr) {
                        // 调用方法返回新名字
                        File newf = newFiles(f, newfile);

                        // 复制文件
                        move(f, newf);
                }

        }

        // 将原来的.txt文件转变为.java文件对象
        private static File newFiles(File f, File newfile) {
                // 变换文件名
                String name = f.getName();
                name = name.replace(".txt", ".java");
                File file = new File(newfile, name);
                return file;
        }

        // 通过流复制文件
        private static void move(File f, File newf) throws IOException {
                BufferedReader buffr = new BufferedReader(new FileReader(f));
                BufferedWriter buffw = new BufferedWriter(new FileWriter(newf));
                String line = null;
                while ((line = buffr.readLine()) != null)
                        buffw.write(line);
                buffr.close();
                buffw.close();
        }

        // 通过递归找出所有.txt文件
        private static ArrayList<File> findTxt(File oldfile, ArrayList<File> arr)
                        throws IOException {

                File[] files = oldfile.listFiles();
                for (File f : files) {
                        if (f.isDirectory()) {
                                findTxt(f, arr);
                        } else {
                                if (f.getAbsolutePath().endsWith(".txt"))
                                // System.out.println(f.getAbsolutePath());
                                {
                                        arr.add(f);
                                }
                        }
                }
                return arr;
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2