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

© 流空有痕 中级黑马   /  2016-9-15 20:20  /  463 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

public static void main(String[] args) throws IOException {
                        // 封装d:\\java这个目录
                        File startFile = new File("e:\\java");
                        // 获取该目录下的所有满足条件的数组
                        File[] files = startFile.listFiles(new FileFilter() {
                               
                                @Override
                                public boolean accept(File pathname) {
                                       
                                        return pathname.exists()&&pathname.getName().endsWith(".java");
                                }
                               
                        });
                        // 判断目的地是否存在,不存在就建立
                        File endFile = new File("e:\\jar");
                        if (!endFile.exists()) {
                                endFile.mkdir();
                        }
                        // 遍历文件数组
                        for (File f : files) {
                                String name = f.getName(); // 得到文件名
                                File newFile = new File(endFile, name);// 将路径和文件名拼接
                                BufferedReader br = new BufferedReader(new FileReader(f));
                                BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));

                                String line = null;
                                while ((line = br.readLine()) != null) {
                                        bw.write(line);
                                        bw.newLine();
                                        bw.flush();
                                }
                                bw.close();// 释放资源
                                br.close();
                        }
                        // 改名
                        File[] endFileArray = endFile.listFiles();
                        for (File file : endFileArray) {
                                String name = file.getName();
                                String newname = name.replace(".java", ".jar");
                                File newFile = new File(endFile, newname);
                                file.renameTo(newFile);
                        }

2 个回复

倒序浏览
我发现这个答案很有问题
1.输入的路径没有判断功能
2.没用递归,怎么把目录里的内容都拷贝?
3.运行之后发现就创建了文件夹,里面都是空的
回复 使用道具 举报
楼上正解  没递归你怎么保证他的层级的呀?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马