黑马程序员技术交流社区
标题:
跪求,这是咋回事
[打印本页]
作者:
我来也
时间:
2015-4-10 20:59
标题:
跪求,这是咋回事
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class JavaFilelist {
public static void main(String[] args) throws IOException{
File dir=new File("D:\\");
List<File> list=new ArrayList<File>();
fileToList(dir,list);
File file=new File("dir","list.txt");
writeToFile(list,file.toString());
System.out.println(list.size());
}
private static void writeToFile(List<File> list, String string) {
// TODO Auto-generated method stub
}
public static void writeToFile(List<File> list,File dir)throws IOException{
BufferedWriter bufw=null;
try
{
bufw=new BufferedWriter(new FileWriter("D:\\java.txt"));
for(File f:list){
String path=f.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush();
}
}
catch(IOException e){
throw e;
}
finally
{
try
{
if(bufw!=null)
bufw.close();
}
catch(IOException e)
{
throw e;
}
}
}
public static void fileToList(File dir,List<File> list){
File [] files=dir.listFiles();
for(File file:files){
if(file.isDirectory())
fileToList(file,list);
else{
if(file.getName().endsWith(".txt"))
list.add(file);
}
}
}
}
作者:
四季
时间:
2015-4-10 22:38
- -。问题呢。。
作者:
lf027
时间:
2015-4-10 22:54
其实我想说不带这样发帖的啊
作者:
我来也
时间:
2015-4-10 22:59
运行时结果老错,但没有语法错误啊,运行不来,求指点
作者:
看丶小胖
时间:
2015-4-10 23:20
请问一下,你晕运行错误能给一下么?你这样提问很不负责
作者:
sunshine丶朱
时间:
2015-4-11 11:16
我就看看不说话~
作者:
long_yihuan
时间:
2015-4-11 11:20
目前看不懂。。。
作者:
xlunaer
时间:
2015-4-11 11:57
试了一下,输出list大小没错,如果你输出list大小有错,把错误信息发一下,如果没输出结果,是因为兄弟,你下面用了一个递归,上面查找整个D盘,你D盘文件应该不少吧,这样不断递归找txt要多慢有多慢,你换一个小一点的文件夹试一试
作者:
我来也
时间:
2015-4-11 13:19
Exception in thread "main" java.lang.NullPointerException
at JavaFilelist.fileToList(JavaFilelist.java:50)
at JavaFilelist.fileToList(JavaFilelist.java:52)
at JavaFilelist.main(JavaFilelist.java:11)
作者:
kitboxer
时间:
2015-4-11 14:52
测试了一下,没抛异常啊。你这个怎么会空指针异常呢?
debug一下,看看那里出问题了
还有你的if()语句用了简写形式,容易看错
作者:
龙腾浩少
时间:
2015-4-11 14:55
一句注释没有,不是好习惯哦:lol
作者:
挥斥方遒
时间:
2015-4-11 15:38
我也很绕。。。。。。没看多大明白,list是从哪来的??????
public static void fileToList(File dir,List<File> list){
//给files集合赋值 即是dir中的所有文件
File [] files=dir.listFiles();
//遍历files集合中的元素 赋给file
for(File file:files){
//如果file是目录
if(file.isDirectory())
//重新调用自身方法。但是这个list是从哪来的?????????
fileToList(file,list);
else{
if(file.getName().endsWith(".txt"))
list.add(file);
}
}
}
作者:
wocan23
时间:
2015-4-11 16:58
主函数调用的那个方法是空函数体,所以在D盘下没能生成出来那个文件,调用时把toString()去掉,空指针异常没运行出来,除非你的电脑没有D盘
作者:
mah707
时间:
2015-4-11 17:56
可以把返回值设为List<File>啊,可以节省主类的开销
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2