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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始



//9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
/**
* 思路:
*1  源,目的地
*2  遍历源文件,判断子文件是不是后缀为java的文件
*3  把这些文件通过流复制到目标文件夹中.
*4  大扫除
* */

public class Test9 {
        public static void main(String[] args) throws IOException {
               
       
                File1();
               
        }
       
        public static void File1() throws IOException
        {
                File dir = new File("c:\\bbb");
                File f = new File("d:\\aaa");
               
               
                String[] name = dir.list();
               
                for(String wenjian : name)
                {
                        //System.out.println(wenjian);
                        File newWenJian = new File(dir+"\\"+wenjian);
                       
                        while(newWenJian.isFile())
                        {
                                //if((newWenJian.toString()).endsWith(".java"))
                                {
                                        //定义输入流,
                                        BufferedReader br = new BufferedReader(new FileReader(dir));
                                        //定义输出流
                                        BufferedWriter bw = new BufferedWriter(new FileWriter(f));
                                       
                                        String ss = null;
                                        while((ss = br.readLine())!=null)
                                        {
                                                bw.write(ss);
                                        }
                                        br.close();
                                        bw.close();
                                }
                               
                               
                        }
                }
        }

}


最好能指出我问题在哪里,谢谢了,,

1 个回复

倒序浏览
你这题有点乱,我说下我的思路吧. 你对比下我的思路看看哪些是你没想到的.
1:确定源和目的地
2:用File[]  files = sourFile.list();方法来获取到源目录下的所有文件. 这个方法和你使用的遍历一样的
   不同在于这个获得的是File文件对象,而不是字符串,这样可以直接调用对象的方法,后面使用更方便.
3:对files数组里的所有文件进行遍历.遍历的时候先判断 该文件是不是文件. isFile.如果是文件,再判断后缀是否是.java结尾的.
4. 如果是.java结尾的,那么就获取这个文件的名字. file里面有个getName方法. 这样就获取到名字了. 题目不是要求要改为.txt结尾吗.   
5 所以 这时候用字符串分割的方法,将最后的获取到的源文件名字进行分割,把java给去掉.方法是字符串.substring();  需要传参进去,传的参数是最后一个java的开始位置.为什么要是最后一个java的位置呢. 是因为为了防止文件名字是  xxx.java.java 这样一种文件.   所以方法写全就是
     String newFileName = 源文件名.substring(源文件名.lastIndexOf(java))+"txt";
这样就可以将源文件名字修改成我们想要的txt结尾的文件名了.
6 最后将源文件 和  改后的文件传入IO流对象, 进行读写操作就好了. 需要注意的是  IO流需要的是File对象或者有完整路径名+文件名的字符串.  所以你传参前 先要把获得的目的地文件名进行封装成File对象 或者给其加上完整的路径名.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马