java程序报空指针异常

importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;publicclassStor... import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class StorageJavaDemo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
/*
* 需求:对指定目录中的所有(包含子目录)的Java文件的绝对路径写入到一个文本文件中。
* 这样查找某个java文件会比较便捷。
* 思路:
* 1、首先要遍历到所有的目录及其目录的子文件夹及其子文件,由于不知道目录层级,所以要用到递归
* 2、由于只需要java文件所以要用到文件过滤器
* 3、由于java文件不止一个,所以要定义一个容器将其存进去
* 4、然后将其写入到一个文件中,这需要用到写入流
*/

//将一一个文件封装成对象
File f=new File("E:\\");

//定义一个容器用于存储遍历到的java文件
StringBuilder sb=new StringBuilder();

//定义一个写出流对象
FileWriter fw=new FileWriter("E:\\java.txt");

storageJava(f,sb);

//定义一个功能写出输出文件
outPutJava(fw,sb);
}
public static void outPutJava(FileWriter fw, StringBuilder sb) throws IOException {

String str=sb.toString();
char[] ch=new char[str.length()];

fw.write(ch);
fw.flush();
fw.close();
}
public static void storageJava(File f,StringBuilder sb) {

//遍历文件
File[] f2=f.listFiles();

if(f2!=null);
//使用递归方法找出文件夹中的java文件
for (File f1:f2) {
if(f1.isDirectory()){
storageJava(f1,sb);
}else{

//如果不是目录就把java文件存到哪容器中
if(f.getName().endsWith(".java"));
sb.append(f1.getAbsolutePath());
}
}

}
}
展开
 我来答
错永伊I
2012-08-06 · TA获得超过5543个赞
知道小有建树答主
回答量:1036
采纳率:71%
帮助的人:272万
展开全部
没空细看,但有一处明显错误:
if(f.getName().endsWith(".java"));
这里的f应该是f1.
授人以鱼,不如授人以渔。我没空帮你仔细检查程序,但是可以教你怎么解决类似的错误:
你看一下报错的地方在哪里,在它前一行设个断点,然后使用debug模式运行,跟踪看一下变量值,这样就能很清楚错误的原因了。这是编程最基本最常用的知识,一定要学会掌握。这样以后就不用老求人家给你看代码查错误了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱吃荤的扬
2012-08-06 · TA获得超过114个赞
知道小有建树答主
回答量:75
采纳率:0%
帮助的人:62.1万
展开全部
if(f2!=null);
后面应该有return吧;
不然肯定会有空指针异常的

if(f2!=null);
应改成:
if(f2!=null)
return;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金城王少
2012-08-06
知道答主
回答量:14
采纳率:0%
帮助的人:5.7万
展开全部
没图没真相啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
itlodge
2012-08-05 · TA获得超过103个赞
知道答主
回答量:163
采纳率:0%
帮助的人:113万
展开全部
请给出出错信息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式