Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文件对象具有空指针异常_Java_Pointers_Exception_Null_Main - Fatal编程技术网

Java 文件对象具有空指针异常

Java 文件对象具有空指针异常,java,pointers,exception,null,main,Java,Pointers,Exception,Null,Main,我在这一行遇到了问题,特别是文件数组failuSarasas。它正在返回null //obj.generateIndexes(failuSarasas, 2); HashMap<String, HashMap<String, Integer>> indTwoList = obj.generateIndexes(failuSarasas, 2); //对象生成索引(failusaras2); HashMap indTwoList=obj.generateIndexes(f

我在这一行遇到了问题,特别是文件数组failuSarasas。它正在返回null

//obj.generateIndexes(failuSarasas, 2);
HashMap<String, HashMap<String, Integer>> indTwoList = obj.generateIndexes(failuSarasas, 2);
//对象生成索引(failusaras2);
HashMap indTwoList=obj.generateIndexes(failusarass,2);


公共类mainas
{
公共静态void main(字符串[]args)引发IOException
{
mainas obj=新的mainas();
文件[]failuSarasas=obj.getFileList();
//对象生成索引(failuSarasas,2);
HashMap indTwoList=obj.generateIndexes(failusarass,2);
对象printHashMap(indTwoList);
//对象生成索引矩阵(indTwoList,failuSarasas);
//更多代码。。。
}
公共文件[]getFileList()
{
文件夹=新文件(
“C:\\Users\\Dell Pc\\Desktop\\notify\\Informacijos modeliavimas\\Informacijos modeliavimas\\ld2\\pages”);
File[]listOfFiles=folder.listFiles();
返回文件列表;
}
//更多代码。。。
}

您的
failuSarasas
对象为null,因为这段代码似乎返回null:

公共文件[]getFileList()
{
文件夹=新文件(
“C:\\Users\\Dell Pc\\Desktop\\notify\\Informacijos modeliavimas\\Informacijos modeliavimas\\ld2\\pages”);
File[]listOfFiles=folder.listFiles();
返回文件列表;
}

在对新的
文件
对象执行任何操作之前,您可能需要检查文件是否存在。
文件
类有一个
exist()
方法,您可以使用它来完成这项工作。祝你好运

编辑: 根据Oracle文档

公共文件[]列表文件()

返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件

如果此抽象路径名不表示目录,则此方法返回null。否则将返回一个文件对象数组,每个文件或目录对应一个

看到第三段了吗?这就是为什么我怀疑您提供的路径不存在,这就是为什么我要说首先通过
File\exists()
方法进行检查

以下是文件文档的链接:


另外,除非您需要使用
文件
,否则我建议您使用
文件
以及该软件包中的那些项目(
java.nio.File

您能详细说明您遇到了什么错误或意外结果,以及预期的输出吗?请了解modeliavimas2.mainas.generateIndexes(mainas.java:46)modeliavimas2.mainas.mainas(mainas.java:15)中线程“main”java.lang.NullPointerException中的异常。很抱歉,我是这方面的新手,为什么Failu Saras为空?如果他必须采取getFileList方法,请阅读我编辑的答案。这应该能回答你的问题。非常感谢你的精彩解释。问题是在设置目录时,字母C写得像大写字母一样;D“C:\\Users\\Dell Pc\\Desktop\\notify\\Informacijos modeliavimas\\Informacijos modeliavimas\\ld2\\pages”)
public class mainas
{
      public static void main(String[] args) throws IOException
        {
            mainas obj = new mainas();
            File[] failuSarasas = obj.getFileList();

            //obj.generateIndexes(failuSarasas, 2);
            HashMap<String, HashMap<String, Integer>> indTwoList = obj.generateIndexes(failuSarasas, 2);
            obj.printHashMap(indTwoList);
            //obj.generateIndexMatrix(indTwoList, failuSarasas);

            // More code...
        }

    public File[] getFileList()
    {
        File folder = new File(
                " C:\\Users\\Dell Pc\\Desktop\\inform\\Informacijos modeliavimas\\Informacijos modeliavimas\\ld2\\pages");
        File[] listOfFiles = folder.listFiles();
        return listOfFiles;
    }

    // More code...
}