Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 由于NullPointerException,无法加载文件_Java_File_Directory_Nullpointerexception_Load - Fatal编程技术网

Java 由于NullPointerException,无法加载文件

Java 由于NullPointerException,无法加载文件,java,file,directory,nullpointerexception,load,Java,File,Directory,Nullpointerexception,Load,晚上好,我正在做我的作业,我已经找了好几个小时来发现这个错误。我试着抓住NPE,但也没有成功。我错过了什么 该方法的目的是加载文件夹模板中的所有文件,这些文件的后缀为.txt,作为类CuttingTemplate中的对象。然后将读取模板中的名称设置为读取文件的方向,因此当template123.txt文件位于templates文件夹中时,CuttingTemplate的名称设置为templates/template123.txt; 所有加载的CutingTemplates将保存在此列表中: pr

晚上好,我正在做我的作业,我已经找了好几个小时来发现这个错误。我试着抓住NPE,但也没有成功。我错过了什么

该方法的目的是加载文件夹模板中的所有文件,这些文件的后缀为.txt,作为类CuttingTemplate中的对象。然后将读取模板中的名称设置为读取文件的方向,因此当template123.txt文件位于templates文件夹中时,CuttingTemplate的名称设置为templates/template123.txt; 所有加载的CutingTemplates将保存在此列表中:

protected LinkedList<CuttingTemplate> templates = new LinkedList<CuttingTemplate>();
异常被捕获,但NPE除外,我无法找出它

因此,方法如下:

以下是堆栈跟踪:


我希望你能帮助我。

你使用的是什么操作系统?Unix还是Windows?有些东西告诉我,该文件夹可能不存在,因为您提供的路径不是我从这两个环境中期望的路径

在Windows中,您的路径可能如下所示:

    C:/Users/username/Downloads/projectname/templates
    /home/username/Downloads/projectname/templates
在Unix中,它应该如下所示:

    C:/Users/username/Downloads/projectname/templates
    /home/username/Downloads/projectname/templates

NPE被抛出到函数的第5行,因为第4行由listFiles函数返回null,这是因为,您正在读取类路径中的文件夹,该文件夹不可用,而不是您在第1行中提到的路径。

您正在捕获并吞下NPE,而不打印stacktrace,这使得调试变得困难。请看这个关于你是否应该抓住NPE。一旦你有了stacktrace,请提供它,尽管这可能会作为它的副本关闭。请通过复制和粘贴文本本身,而不是图像,将异常stacktraceAdd堆栈跟踪发布到你的问题中。我对Java中的堆栈跟踪非常陌生,我在Eclipse中的堆栈跟踪控制台出于某种原因是空白的。第3行,它只获取文件夹的名称好的,那么我是否应该替换文件relativeDestinationsFolder=new FiletemplatesFolder.getName;getName和getPath?请检查哪一行的异常,并使用正确的inputOkay处理java API,因此我在Windows上,我将文件路径调整为反斜杠符号,但使用了双反斜杠,因为我得到了编译时错误,但仍然得到了NPE…请尝试System.out.PrintLTemplatesFolder.exists;声明变量templatesFolder后:如果它打印为false,则文件夹的路径仍然错误。另一方面,如果它打印的是真的,那么问题在于其他地方谢谢你,我现在知道路径显然是错误的谢谢,我没有打印的想法!现在我意识到我的愚蠢:我把它引入的目录是一个zip文件,所以我解压了它并更改了字符串。我如释重负,我觉得我打败了黑暗的灵魂。你用我的答案解决了你的问题吗?如果是,请将其标记为解决方案,否则请随意添加任何有助于我们帮助您的信息