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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奔→跑 黑马帝   /  2011-12-27 23:37  /  2443 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


请问以下代码有什么问题,,运行时发生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());
                }
        }
}

4 个回复

倒序浏览
没有问题啊,你是不是弄错,执行了没问题,你有没有d:\\盘,我没有g盘,把路径设为g盘就报空指针异常
回复 使用道具 举报
本帖最后由 刘忠德 于 2011-12-28 00:20 编辑

我感觉只要不是访问磁盘根目录就没问题,可能扫描到根目录下的隐藏系统文件夹,但又没有权限访问文件夹里面的内容,所以就发生这个异常~
回复 使用道具 举报
File[] fames = dir.listFiles();运行时发生NullPointerException必然是dir封装有问题,
File dir = new File("d:\\");应该这样
File dir = new File("d:\\temp");
就不会有NullPointerException

回复 使用道具 举报
哦,,,我知道了,,是我电脑上有隐藏文件夹
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马