A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白粥做底 初级黑马   /  2015-11-1 00:30  /  614 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

将指定目录下所有的txt文件复制到c盘下任意目录(你可以自己指定路径)并在复制后将txt后缀改成java后缀名。

1 个回复

倒序浏览
/*
* 将指定目录下所有的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;
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马