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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李计伟 中级黑马   /  2012-11-10 19:50  /  1442 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李计伟 于 2012-11-10 20:17 编辑

  1.      import java.io.File;
  2.         public class Test{
  3.               public static void main(String[] args) {
  4.                     File file = new File("E:\\");
  5.                     printArrayFile(file);
  6.               }
  7.               private static void printArrayFile(File file) {
  8.                     File[] arrayFile = file.listFiles();
  9.                     for(File f : arrayFile){
  10.                     //判断是否为文件
  11.                     if(f.isDirectory()){
  12.                     //递归调用
  13.                     printArrayFile(f);
  14.                     }else{
  15.                     System.out.println(f.getName());
  16.                      }
  17.                 }
  18.              }
  19.         }
复制代码
我这个遍历D盘所有的文件为什么会出NullPointerException异常

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

2 个回复

倒序浏览
我测试了一下

递归程序最后出异常了 我估计是超出范围了.

递归这个东西就是这样,一旦数据量大就不好用 呜 就是这样.
回复 使用道具 举报
你的出现了空指针异常,先判断再遍历文件
  1. import java.io.File;

  2.    public class Test{

  3.          public static void main(String[] args) {

  4.                File file = new File("E:\\");

  5.                printArrayFile(file);

  6.          }

  7.          private static void printArrayFile(File file) {
  8.                if(file.listFiles()!=null)   //这儿添加判断,看看文件列表是否为空,空的话会出现空指针异常
  9.                { File[] arrayFile = file.listFiles();

  10.                for(File f : arrayFile){

  11.                //判断是否为文件

  12.                if(f.isDirectory()){

  13.                //递归调用
  14.                printArrayFile(f);

  15.                }
  16.                else{

  17.                System.out.println(f.getName());

  18.                 }

  19.            }

  20.         }
  21.          }

  22.    }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马