黑马程序员技术交流社区

标题: 为什么会发生空指针异常; [打印本页]

作者: 奔→跑    时间: 2011-12-27 23:37
标题: 为什么会发生空指针异常;

请问以下代码有什么问题,,运行时发生NullPointerException
import java.io.*;
class FileDemo5
{
        public static void main(String[] args)
        { File dir = new File("d:\\");
                method(dir,0);
        }
        public static String getLevel(int level)
        {   
                StringBuilder sb = new StringBuilder();
                sb.append("|--");
         for (int x=0;x<level;x++)
         {
                         sb.insert(0,"  ");
         }
                 return sb.toString();

               
        }
        public static void method(File dir,int level)
        {
      
                System.out.println(dir);
          level++;
                File[] fames = dir.listFiles();
                for (int x=0;x<fames.length;x++)
                {

                    if(fames[x].isDirectory())
                            method(fames[x],level);
                        else
                            System.out.println(getLevel(level)+fames[x].getName());
                }
        }
}

作者: yunqiangshan    时间: 2011-12-28 00:15
没有问题啊,你是不是弄错,执行了没问题,你有没有d:\\盘,我没有g盘,把路径设为g盘就报空指针异常
作者: 刘忠德    时间: 2011-12-28 00:19
本帖最后由 刘忠德 于 2011-12-28 00:20 编辑

我感觉只要不是访问磁盘根目录就没问题,可能扫描到根目录下的隐藏系统文件夹,但又没有权限访问文件夹里面的内容,所以就发生这个异常~
作者: 罗全涛    时间: 2011-12-28 10:22
File[] fames = dir.listFiles();运行时发生NullPointerException必然是dir封装有问题,
File dir = new File("d:\\");应该这样
File dir = new File("d:\\temp");
就不会有NullPointerException


作者: 奔→跑    时间: 2011-12-28 23:53
哦,,,我知道了,,是我电脑上有隐藏文件夹




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