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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© simonqian 中级黑马   /  2013-5-23 21:45  /  1731 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 simonqian 于 2013-5-28 21:32 编辑
  1. package com.one;

  2. import java.io.File;

  3. public class FileDemo
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 File file = new File("d:\\adb");//把这里改成d:\\为什么d盘下目录不能全部显示,反而空指针异常呢?求解
  8.                 showDir(file);
  9.         }
  10.         public static void showDir(File file)
  11.         {
  12.                 File[] dir = file.listFiles();
  13.                 for(File f :dir)
  14.                 {
  15.                         if(f.isDirectory())
  16.                                 showDir(f);
  17.                         else
  18.                                 System.out.println(f.toString());
  19.                 }
  20.                
  21.         }

  22. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
HM汪磊 + 1

查看全部评分

9 个回复

倒序浏览
  1. package org.sky.io;

  2. import java.io.File;

  3. public class TestDisplayFile {
  4.         public static void main(String[] args) {
  5.                 list(new File("E:"+File.separator));
  6.         }

  7.         public static void list(File file){
  8.                 if(file.isDirectory()){
  9.                         File[] temp = file.listFiles();
  10.                         if(temp!=null){
  11.                                 for (int i = 0; i < temp.length; i++) {
  12.                                         list(temp[i]);
  13.                                 }
  14.                         }
  15.                 }else{
  16.                         System.out.println(file);
  17.                 }
  18.         }
  19. }
复制代码
在listFiles()方法之前先判断是否是目录!
返回File[]最好也判断,null或长度!

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
可能出现null的有:
1、showDir(File file)中file参数
2、File[] temp = file.listFiles();中的File[],你检查一下!

下次把报错信息帖出来,没......图......你说........

回复 使用道具 举报
那是因为盘符不是文件夹或者文件,可以用文件夹路径,或者文件路径来创建文件对象
但不能用盘符来创建文件对象。
回复 使用道具 举报
楼主同样的代码我可以顺利跑 没有异常,
File file = new File("d:\\adb");//把这里改成d:\\为什么d盘下目录不能全部显示,反而空指针异常呢?求解
这句话我换成d:\\ 也可以执行
如果d:\\adb是空指针的话,可能是adb这个文件夹不存在,建议在showDir中判断下file.exists() 如果不存在就返回;

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
mvplee 发表于 2013-5-23 22:13
可能出现null的有:
1、showDir(File file)中file参数
2、File[] temp = file.listFiles();中的File[],你检 ...

头像很给力
回复 使用道具 举报
楼主你好,如果问题以解决,请修改分类,谢谢合作。

回复 使用道具 举报
mvplee 中级黑马 2013-5-24 09:26:01
8#
袁梦希 发表于 2013-5-24 01:30
头像很给力

本人长的也很给力!
回复 使用道具 举报
不懂,路过!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马