黑马程序员技术交流社区

标题: 救急 [打印本页]

作者: 盛光富    时间: 2012-5-14 19:15
标题: 救急
从键盘输入接收一个文件夹路径, 将该文件夹下的所有.java文件的文件名写入到java.txt文件中
看了N次了,还是没有看出来哪里错了,高手救急啊
public class Lesson {
       public static void main(String[] args) throws IOException {
                System.out.println("请输入一个路径:");
                   File dir = getDir();

                  String[] arr = dir.list();
                  BufferedWriter bw = new BufferedWriter(new FileWriter("java.txt"));
                   for (String name : arr)
                            if (name.endsWith(".java")) {
                                  bw.write(name);
                                  bw.newLine();
                                  }
                        bw.close();
                 }

     public static File getDir() throws IOException {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                while (true) {
                           File file = new File(br.readLine());
                            if (!file.exists())
                                       System.out.print("您输入的路径不存在,请重新输入");
                            else if (!file.isDirectory())
                                      System.out.println("您输入的不是文件夹路径,请重新输入");
                             else
                                  return file;
                }
      }
}

作者: 云惟桉    时间: 2012-5-14 19:24
for (String name : arr)
                    if (name.endsWith(".java")) {
                             bw.write(name);
                             bw.newLine();
                    }
                  bw.close();
}
你的输出流怎么在foreach语句中关闭了呢,那么程序只循环一次就把流关了,之后就没办法再输出了。
楼主是想在该语句处刷新吗?
建议使用bw.flush();
然后在for循环结束以后,关闭流就行了。
楼主可以检验一下。
作者: 蒋映辉    时间: 2012-5-14 19:32
首先,你知道你存放的路径在哪吗?是在你的项目的跟目录下。
然后,你的代码能够实现找到文件夹的下一层的JAVA文件  
但是比如 文件夹里没有java文件  但是文件夹的文件里有   你的代码就不能实现了  这个要用递归来实现
作者: 盛光富    时间: 2012-5-14 20:22
云惟桉 发表于 2012-5-14 19:24
for (String name : arr)
                    if (name.endsWith(".java")) {
                          ...

谢谢了,看了三四遍没有注意到这个位置郁闷啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2