A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵志勇 中级黑马   /  2012-5-14 17:14  /  2084 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天下午没有午睡,脑子晕晕的,下面的这个程序是在是搞不出什么错了,以前遇到过这样的提示,可是现在怎么也想不出来了,求帮助。
import java.io.*;
class RemoveDir  
{
public static void main(String[] args)
{
  File dir=new File("e:\\javaprogram\\15");
  7removeDir(dir);
}
public static void removeDir(File dir)
{
  File[] files=dir.listFiles();
12 for (int x=0;x<files.length ;x++ )
  {
   if (files[x].isDirectory())
    removeDir(files[x]);
   else
      System.out.println(files[x].toString()+""+files[x].delete());
  }
  System.out.println(dir+"dir:::"+dir.delete());
}
}
Exception in thread "main" java.lang.NullPointerException
        at RemoveDir.removeDir(RemoveDir.java:12)
        at RemoveDir.main(RemoveDir.java:7)这样的提示是为什么呢?谢谢。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
public static void removeDir(File dir)
{
   File[] files=dir.listFiles();//OK  你可以试试在这里加一行代码 判断一下if(files!=null)试试看 因为在WIndows下好多文件不让外部访问
12 for (int x=0;x<files.length ;x++ )
   {
    if (files[x].isDirectory())
     removeDir(files[x]);
    else
       System.out.println(files[x].toString()+""+files[x].delete());
   }
   System.out.println(dir+"dir:::"+dir.delete());
}
}
回复 使用道具 举报
这是运行时期的异常,空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体。
兄弟你的代码没有什么大的毛病,就是没有要删除的对象所引起的。我把你的代码稍微的改了一下你看看吧!
import java.io.*;
import java.util.*;

public class Exercise2 {

        
       
        public static void main(String[] args)
        {
          File dir=new File("e:\\a");
          if(!dir.exists())
         dir.mkdir();//当没有对象的时候我们就自己创建个对象         
          
          removeDir(dir);
        }
        public static void removeDir(File dir)
        {
          File[] files=dir.listFiles();
       
          for(File file:files){
           if (file.isDirectory())
            removeDir(file);
           else
              System.out.println(file.toString()+""+file.delete());
          }
          System.out.println(dir+"dir:::"+dir.delete());
        }
        }


评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
代码可以通过,看一下 e:\\javaprogram\\15 路径名是不是正确,\15是文件夹
回复 使用道具 举报
同意楼上的观点,这是个异常吗!应该是由于你的引用指向的异常,应该传入的File dir是否为空引用引起的异常
回复 使用道具 举报
栗培文 发表于 2012-5-14 18:27
代码可以通过,看一下 e:\\javaprogram\\15 路径名是不是正确,\15是文件夹

高手,java program 没有空格,确实错了。谢谢。
回复 使用道具 举报
李啸 发表于 2012-5-14 17:33
public static void removeDir(File dir)
{
   File[] files=dir.listFiles();//OK  你可以试试在这里加一 ...

高手,谢谢啊
已经解决。
回复 使用道具 举报
郭振 发表于 2012-5-14 18:06
这是运行时期的异常,空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体。
兄弟你的 ...

高手。可以通过。:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马