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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贺小梅 中级黑马   /  2015-12-1 23:55  /  911 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

      2015年12月01日,来到黑马的第二十一天,每天忙碌充实,基本没有时间去想其他的事情,来了这么久,也没有什么可以给大家的建议,不过有一点是可以给大家的,就是一定要超前教学安排的课程,要不然会跟不上老师的节奏。好吧, 还是每天的练习题,今天估计有点跳跃,因为课程还没有上到IO流,我是提前看的,今天看到一道题很有代表性,想分享出来给大家,希望大家都认真看看,对学习IO流有很大的帮助。好吧,下面就是这个题的要求以及解题的过程,代码如下:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;

//4、编写一个程序,把这个目录下的所有的带.java文件都拷贝到另一个目录总,拷贝成功后,把后缀名是.java的改成.txt
/*
* 思路
*                 1、创建输入流对象,遍历目录,通过匿名内部类拿出。符合规则的文件
*                 2、通过高效字符流复制文件
*                 3、将.java改成.txt
*/
public class ExamTest4 {
        public static void main(String[] args) throws IOException {
                // 封装d:\\java这个目录
                File startFile = new File("d:\\java");
                // 获取该目录下的所有满足条件的数组
                File[] files = startFile.listFiles(new FilenameFilter() {

                        @Override
                        public boolean accept(File dir, String name) {
                                return new File(dir, name).isFile() && name.endsWith(".java");
                        }
                });
                // 判断目的地是否存在,不存在就建立
                File endFile = new File("d:\\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);
                }

        }
}


个人认为这个题对理解IO流有很大的帮助,希望大家看看,就算没有多大的帮助,您就当做一个题来做吧
今天的题目就是这个,我看了好几遍,还是真诚的希望您们看看这个~~
好了,忙碌了一天了,大家还是不要熬夜,早点休息,养好精神,去接受明天的新知识吧~~

6 个回复

正序浏览
olivor 中级黑马 2015-12-2 09:11:56
7#
谢分享.
回复 使用道具 举报
贺小梅 发表于 2015-12-2 00:52
这个没有什么后辈的,只是觉得这道题涉及的东西很多,而且个人觉得很好,所以想分享出来给大家学习学习 ...

对了,你感觉黑马怎么样啊,在里面,,
回复 使用道具 举报
不错  不错   
回复 使用道具 举报
ToSina 发表于 2015-12-2 00:00
楼主加油  , 后辈学习学习....

这个没有什么后辈的,只是觉得这道题涉及的东西很多,而且个人觉得很好,所以想分享出来给大家学习学习
回复 使用道具 举报
楼主加油!真的不错
回复 使用道具 举报
楼主加油  , 后辈学习学习....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马