黑马程序员技术交流社区

标题: 一段代码空指针异常如何解决额 [打印本页]

作者: murder_fol    时间: 2013-10-9 10:21
标题: 一段代码空指针异常如何解决额
本帖最后由 murder_fol 于 2013-10-9 10:42 编辑
  1. /*
  2. 用递归算法列出目录下的所有内容
  3. */

  4. import java.io.*;
  5. class  FileListAll
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 File file = new File("d:\\");
  10.                 listAll(file);
  11.         }

  12.         public static void  listAll(File f)
  13.         {
  14.                 System.out.println(f);
  15.                 File []files = f.listFiles();

  16.                 for(int x =0;x<files.length;x++)
  17.                 {
  18.                         
  19.                         if(files[x].isDirectory())
  20.                                 listAll(files[x]);
  21.                         else
  22.                                 System.out.println(files[x]);

  23.                 }

  24.                
  25.         }
  26. }
复制代码
当有空文件夹时候,会出现空指针异常



作者: 喝龙血的我    时间: 2013-10-9 10:28
直接抛出异常,或者try catch都行
作者: 喝龙血的我    时间: 2013-10-9 10:29
可以首先判断下文件夹是否存在  
作者: murder_fol    时间: 2013-10-9 10:29
本帖最后由 murder_fol 于 2013-10-9 10:32 编辑

不好意思,自己解决了,一直想着用files.length来检测是否为空,其实用files!=null就可以检测是否为空了,空文件夹listFile返回的也是null,调用length,当然会出现空指针异常
  1. for(int x =0;files!=null&&x<files.length;x++)
  2.                 {
  3.                        
  4.                         if(files[x].isDirectory())
  5.                                 listAll(files[x]);
  6.                         else
  7.                                 System.out.println(files[x]);

  8.                 }
复制代码

作者: murder_fol    时间: 2013-10-9 10:38
如何结束提问呢





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2