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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小马过河 于 2013-11-18 23:29 编辑

         {:soso_e154:} 心得,导包还是建议不要求简单加星号,多自己给出更好,作为一个在路上的童鞋,说句实话,很多朋友在做实现的时候都能有个大概思路,但是没有代码。一个是缺乏足够的练习,借老李的口号,狂敲,狂敲!
          另外,很多时候我们缺乏对方法灵活的运用,而灵活的应用是建立在熟悉的基础之上,建议大家完成代码后将里面用到的方法备注总结出来,{:soso_e129:}不然过上些日子,不说陌生,忘了都是可能的。直接导致很多时候面对需求束手无策。
          API灰常灰常重要,不指望大家能超越那个传说背API的猛人,能记得一些还是记一些哇
          以下这个简单代码就是我的切肤之痛,人家5分钟,我查都查了2个小时。
下面是我写出来的,注释了过程总结~,一样的菜鸟可以以码会友哦
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;

//需求,对一个文件夹内部分文件进行改名,再复制到新的目录中。
//分析:1,先得有这么一个文件夹作为文件源; 2,封装文件源; 3,建立一个文件源数组,并使用文件过滤器。 4,建立目的地目录。且对此目录进行判定,是否存在,不存在即创建
//         5,对文件源,文件数组进行遍历,获取每一个文件的名字。 6,将获取到的名字赋给新的名字。7,用一个新的文件接收目的地的对象和名字。
//        8,再进行io流的写入工作,用BufferedReader和BufferedWiter的特有方法。
public class ReNameCopy {
        public static void main(String[] args) throws IOException {
                //封装文件源
                File file = new File("d:\\day1105");
                //将文件源定义成一个数组
                File[] arrayfile =file.listFiles(new FilenameFilter(){
                        public boolean accept(File dir, String name) {
                //具体描述,这句在建立数组时就已经进行了过滤,过滤的是文件类型和命名,将筛选的结果建立成数组。
                                return new File(dir,name).isFile()&&name.endsWith(".java");
                        }
                });
                //建立目的地
                File file2 = new File("f:\\day");
                //对文件进行判定,是否存在此目录
                if (!file2.exists()) {
                        file2.mkdir();//创建目录。
                }
                //对文件源进行变量
                for (File fi : arrayfile) {
                        //获取文件名字
                        String name=fi.getName();
                        //对名字进行修改,获得新的名字。
                        String newName=name.replace(".java", ".jdk");
                        //创建一个新的文件,接收新的文件地址和名字。记住,这里很多人不明白,会认为既然已经有的新的文件目的地,再建立的会
                        //不知道放在那里。实际上是没有深刻理解变量名,这里传递file2是地址值。
                        //这里的file(file2,newName)是File类中四种构造方法的一种。File(File parent, String child)
                        File newFile = new File(file2,newName);
                        //现在进行IO流的输入输出。
                        BufferedReader br = new BufferedReader(new FileReader(fi));
                        BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));
                        //进行while循环写入,采用高效字符流里的特殊方法。
                        String line = null;               
                        while((line=br.readLine())!=null){
                                bw.write(line);
                                bw.newLine();
                                bw.flush();
                        }
                        br.close();
                        bw.close();
                }
        }
}end。。。闷的抓狂抓头发,抓到虫子很开心,加油童鞋们



评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 感谢分享~

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马