使用java.io.File时发生NullPointerException [英] NullPointerException when using java.io.File
本文介绍了使用java.io.File时发生NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用该程序对D:\驱动器中的所有文件进行计数,但是在运行它时会引发异常.
I am trying to use this program to count all the files in the D:\ drive but it is throwing an exception when I run it.
package lmh;
import java.io.File;
public class FileList {
static int fileNum = 0;
static int directoryNum = 0;
static int cannotRead = 0;
public static void main(String[] args) {
File f = new File("e:/");
printFileStructure(f);
System.out.println("result:");
System.out.println("file number:" + fileNum);
System.out.println("directory number:" + directoryNum);
System.out.println("cannot rend:" + cannotRead);
}
public static void printFileStructure(File f) {
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
if (files[i].canRead()) {
fileNum++;
System.out.println(files[i].getName());
} else {
cannotRead ++;
}
}
else if (files[i].isDirectory()) {
if (files[i].canRead()) {
directoryNum++;
printFileStructure(files[i]);
} else {
cannotRead ++;
}
}
}
}
}
推荐答案
File.listFiles()
不能保证返回非空值.这很容易发生(根据我的经验),因为Java可以看到看起来像目录的东西,但是无法列出它(想到连接点)
File.listFiles()
is not guaranteed to return a non-null value. This tends to occur (from my experience) because Java could see what looked like directory, but could not list it (Junctions come to mind)
这篇关于使用java.io.File时发生NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文