黑马程序员技术交流社区
标题:
救急
[打印本页]
作者:
盛光富
时间:
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