为什么会报出NullPointerException

xuchengxi-java 2013-04-13 11:43:03
这个IO程序不知道为什么会报出NullPointerException,该怎么解决呢?
package com.io2;

import java.io.File;
import java.util.ArrayList;

public class ListAllTest
{
//用于判断目录或文件所处的层次
private static int time;

// 递归的方法
public static void deepList(File file) throws NullPointerException
{
if (file.isFile() || 0 == file.listFiles().length)
{
return ;
}
else
{
File[] files = file.listFiles();

files = sort(files);

for(File f : files)
{
StringBuffer output = new StringBuffer();

if(f.isFile())
{
output.append(getTabs(time));
output.append(f.getName());
}
else
{
output.append(getTabs(time));
output.append(f.getName());
output.append("\\");
}

System.out.println(output);

if(f.isDirectory())
{
time++;

deepList(f);

time--;
}
}
}
}

// 整理文件数组,使得目录排在文件之前
private static File[] sort(File[] files)
{
ArrayList<File> sorted = new ArrayList<File>();

// 寻找到所有的目录
for (File f : files)
{
if (f.isDirectory())
{
sorted.add(f);
}
}
// 寻找到所有的文件
for (File f : files)
{
if (f.isFile())
{
sorted.add(f);
}
}

return sorted.toArray(new File[files.length]);
}

//判断需要加多少tab的方法
private static String getTabs(int time)
{
StringBuffer buffer = new StringBuffer();

for(int i = 0; i < time; i++)
{
buffer.append("\t");
}

return buffer.toString();
}


public static void main(String[] args)
{
File file = new File("C:\\ProgramData");

deepList(file);
}
}
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LCore 2013-04-16
  • 打赏
  • 举报
回复
引用 楼主 wodetongnian 的回复:
这个IO程序不知道为什么会报出NullPointerException,该怎么解决呢? package com.io2; import java.io.File; import java.util.ArrayList; public class ListAllTest { //用于判断目录或文件所处的层次 private static int tim……
测试无问题,看看你的详细报错信息吧
xunis 2013-04-16
  • 打赏
  • 举报
回复
隐藏的文件夹不会有问题 之前还考虑会不会是.和..文件夹造成的,测试后发现不是,目前不清楚空指针是什么原因造成的。
isJeson 2013-04-15
  • 打赏
  • 举报
回复
判断是不是目录的时候海牙加上一条,如果是隐藏的就跳过,如果是不可读的也需要跳过
Storm-Shadow 2013-04-14
  • 打赏
  • 举报
回复
程序本身没有问题,因为你读的是系统盘里的文件信息,操作系统给予应用程序访问系统文件的权限和访问非系统文件的权限是不同的.程序在试图读取系统盘里的文件的信息时没有获得访问的权限,所以会报出NullPointerException.这点很好理解:如果应用程序能随意读写系统文件,那么系统就会很不安全.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧