“java.lang.NullPointerException”错误的未知源
使用上述代码,每次尝试运行它时,第9行都会出现java.lang.NullPointerException错误。然而,我不确定这个错误的来源是什么 文件为空。因此,当您调用NPE的length属性时,您将得到一个NPE。files为null。因此,当您调用其长度属性时,您将得到一个NPE。根据Javadocs: 如果此抽象路径名不表示目录,则 方法返回null“java.lang.NullPointerException”错误的未知源,java,Java,使用上述代码,每次尝试运行它时,第9行都会出现java.lang.NullPointerException错误。然而,我不确定这个错误的来源是什么 文件为空。因此,当您调用NPE的length属性时,您将得到一个NPE。files为null。因此,当您调用其长度属性时,您将得到一个NPE。根据Javadocs: 如果此抽象路径名不表示目录,则 方法返回null 所以,Java说/home/vito/Desktop/Dir1不是有效的目录。你的大写字母有错误吗?根据Javadocs: 如果此抽象路
所以,Java说/home/vito/Desktop/Dir1不是有效的目录。你的大写字母有错误吗?根据Javadocs: 如果此抽象路径名不表示目录,则 方法返回null
所以,Java说/home/vito/Desktop/Dir1不是有效的目录。您的大写字母有错误吗?根据javadocs for java.io.File: 如果此抽象路径名不表示目录,则返回null,或者 如果发生I/O错误
必须是之前的方法调用有问题。根据javadocs for java.io.File: 如果此抽象路径名不表示目录,则返回null,或者 如果发生I/O错误
一定是之前的方法调用有问题。好吧,让我们看看javadoc是怎么说的 公共文件[]列表文件 返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。 如果此抽象路径名不表示目录,则此方法返回null。否则将返回一个文件对象数组,每个文件或目录对应一个。结果中不包括表示目录本身和目录父目录的路径名。每个生成的抽象路径名都是使用文件文件字符串构造函数从此抽象路径名构造的。因此,如果此路径名是绝对的,则每个生成的路径名都是绝对的;如果此路径名是相对的,则每个生成的路径名将相对于同一目录 无法保证结果数组中的名称字符串将以任何特定顺序出现;特别是,它们不能保证按字母顺序出现 返回: 一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件和目录。如果目录为空,则数组将为空。如果此抽象路径名不表示目录,或者发生I/O错误,则返回null。 抛出: SecurityException—如果存在安全管理器,且其SecurityManager.checkReadjava.lang.String方法拒绝对目录的读取访问 自: 1.2
好吧,让我们看看javadoc是怎么说的 公共文件[]列表文件 返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。 如果此抽象路径名不表示目录,则此方法返回null。否则将返回一个文件对象数组,每个文件或目录对应一个。结果中不包括表示目录本身和目录父目录的路径名。每个生成的抽象路径名都是使用文件文件字符串构造函数从此抽象路径名构造的。因此,如果此路径名是绝对的,则每个生成的路径名都是绝对的;如果此路径名是相对的,则每个生成的路径名将相对于同一目录 无法保证结果数组中的名称字符串将以任何特定顺序出现;特别是,它们不能保证按字母顺序出现 返回: 一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件和目录。如果目录为空,则数组将为空。如果此抽象路径名不表示目录,或者发生I/O错误,则返回null。 抛出: SecurityException—如果存在安全管理器,且其SecurityManager.checkReadjava.lang.String方法拒绝对目录的读取访问 自: 1.2 Javadoc说:
import java.io.File;
public class filesinDirectory {
public static void main(String[] args) {
File path = new File("/home/vito/Desktop/Dir1");
File[] files = path.listFiles();
int length = files.length; // line 9
for (int i = 0; i != length; i++) {
if (files[i].isFile())
System.out.println( i + ": " + files[i].getName());
}
}
}
如果发生I/O错误
因此,要么目录不存在,要么发生I/O错误。Javadoc说:
import java.io.File;
public class filesinDirectory {
public static void main(String[] args) {
File path = new File("/home/vito/Desktop/Dir1");
File[] files = path.listFiles();
int length = files.length; // line 9
for (int i = 0; i != length; i++) {
if (files[i].isFile())
System.out.println( i + ": " + files[i].getName());
}
}
}
如果发生I/O错误
因此,目录不存在或发生I/O错误。非常感谢。这是一个带有目录名的问题。我甚至没想到要检查一下。我想这表明这是一个瓦莱布尔的问题。非常感谢。这是一个带有目录名的问题。我甚至没想到要检查一下。我认为这表明其中一个变量有问题。@sotl-如果其中一个答案解决了您的问题,请单击旁边的复选标记将其标记为接受答案。@sotl-如果其中一个答案解决了您的问题,请单击旁边的复选标记将其标记为接受答案 我会回答的。