JAVA空指针问题

importjava.io.*;publicclassFileCopy{publicstaticvoidmain(Stringargs[])throwsIOExcepti... import java.io.*;

public class FileCopy {

public static void main(String args[]) throws IOException{
String url1 = "F:/音乐";
String url2 = "e:/testcopy";
File f1 = new File(url1);
File f2 = new File(url2);
File[] flist = f1.listFiles();
int len=0;
while(len<flist.length){
if(flist[len].isFile()){
copyFile(flist[len],new File(url2+File.separator+flist[len].getName()));
}else if(flist[len].isDirectory()){
String dirname1 = url1 + flist[len].getName();
String dirname2 = url2 + flist[len].getName();
copyDirectory(dirname1,dirname2);
}
len++ ;
}

}
public static void copyDirectory(String dirname1, String dirname2) throws IOException {
// TODO Auto-generated method stub
(new File(dirname2)).mkdir();
File[] flist =(new File(dirname1)).listFiles();
for(int len=0 ; flist[len]!=null ;len++){
if(flist[len].isFile()){
copyFile(flist[len],new File(dirname2+File.separator+flist[len].getName()));
}else if(flist[len].isDirectory()){
String dir1 = dirname1 + flist[len].getName();
String dir2 = dirname2 + flist[len].getName();
copyDirectory(dir1,dir2);
}
}
}
public static void copyFile(File f1,File f2) throws IOException{
BufferedInputStream in = new BufferedInputStream(new FileInputStream(f1));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(f2));

byte[] b = new byte[1024*5];
int len ;
while((len = in.read(b))!=-1){
out.write(b,0,len);
}
in.close();
out.close();
}
}
Exception in thread "main" java.lang.NullPointerException
at FileCopy.copyDirectory(FileCopy.java:30)
at FileCopy.main(FileCopy.java:19)
也就是
copyDirectory(dirname1,dirname2);
for(int len=0 ; flist[len]!=null ;len++){
展开
 我来答
luoxichuan
2013-05-19
知道答主
回答量:39
采纳率:0%
帮助的人:9.6万
展开全部
空指针是对象空引用 ··比如说 a.close(); 当a是空值是就会报空指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-19
展开全部
打一个断点,debug一下,就知道哪里是空了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水冰天之痕
2013-05-19 · TA获得超过716个赞
知道小有建树答主
回答量:1254
采纳率:50%
帮助的人:1157万
展开全部
copyFile(flist[len],new File(url2+File.separator+flist[len].getName()));
}else if(flist[len].isDirectory()){

明明上面加了File.separator,下面为什么不加

String dirname1 = url1 + flist[len].getName();
String dirname2 = url2 + flist[len].getName();
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
年盛2y
2013-05-19 · TA获得超过508个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:54.6万
展开全部
学习编程我感觉流程很重要:
1将流程打印出来
看看具体走到哪里了 给问题准确定位 首先要找到错 才能解决
2就像楼下所说的调试模式 一步步执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潜素昕4h
2013-05-19
知道答主
回答量:91
采纳率:0%
帮助的人:25.4万
展开全部
java debug
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式