Java 访问文件夹中的文件时出现NullPointerException

Java 访问文件夹中的文件时出现NullPointerException,java,file,nullpointerexception,Java,File,Nullpointerexception,我试图列出文件夹中的文件,但它会产生空指针异常 这是密码 String url=req.getRequestURI(); String path=session.getServletContext().getRealPath(url); File folder = new File(path); File[] listOfFiles = folder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) {

我试图列出文件夹中的文件,但它会产生空指针异常 这是密码

String url=req.getRequestURI();
String path=session.getServletContext().getRealPath(url);
File folder = new File(path);
      File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {//this line is producing nullpointer exception
      if (listOfFiles[i].isFile()) {
        System.out.println("File " + listOfFiles[i].getName());
      } else if (listOfFiles[i].isDirectory()) {
        System.out.println("Directory " + listOfFiles[i].getName());
      }
    }
作为各州的Javadoc:

如果此抽象路径名不表示目录,则返回null,或者 如果发生I/O错误

因此,为了防止NPE,采取如下措施:

    File[] listOfFiles = folder.listFiles();

    if (listOfFiles != null) {
        for (int i = 0; i < listOfFiles.length; i++) {
          if (listOfFiles[i].isFile()) {
            System.out.println("File " + listOfFiles[i].getName());
          } else if (listOfFiles[i].isDirectory()) {
            System.out.println("Directory " + listOfFiles[i].getName());
          }
        }
    }
    else {
        System.out.println("Could not read " + folder.getName());
    }
File[]listOfFiles=folder.listFiles();
if(listOfFiles!=null){
for(int i=0;i
请将
NullPointerException
编辑到您的问题中。问题的可能副本与此完全相同,但它只是跳过了null文件。我有一个文件夹中的文件哪一行产生了异常?可能是
    File[] listOfFiles = folder.listFiles();

    if (listOfFiles != null) {
        for (int i = 0; i < listOfFiles.length; i++) {
          if (listOfFiles[i].isFile()) {
            System.out.println("File " + listOfFiles[i].getName());
          } else if (listOfFiles[i].isDirectory()) {
            System.out.println("Directory " + listOfFiles[i].getName());
          }
        }
    }
    else {
        System.out.println("Could not read " + folder.getName());
    }