Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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 FileInputStream是否为空?_Java_File_File Io - Fatal编程技术网

Java FileInputStream是否为空?

Java FileInputStream是否为空?,java,file,file-io,Java,File,File Io,好的,这是返回null的行。创建此FileInputStream时我做错了什么 FileInputStream fin = new FileInputStream(new File(getClass().getResource("data/levellocks.lv").toURI())); 唯一可以为null的是getResource(“data/levellocks.lv”),它调用toURI调用失败getClass或getResource都可能返回null。其他一切都应该成功,否则会引发

好的,这是返回null的行。创建此FileInputStream时我做错了什么

FileInputStream fin = new FileInputStream(new File(getClass().getResource("data/levellocks.lv").toURI()));

唯一可以为null的是getResource(“data/levellocks.lv”),它调用toURI调用失败

getClass或getResource都可能返回null。其他一切都应该成功,否则会引发异常。

我实际上刚刚处理了这个问题(我不是专家),但请尝试调试,看看构造函数试图将名称解析到哪里。对我来说,这是全班的套餐。因此,当我将文件放入预期文件夹时,它找到了它


对你来说可能会不一样,因为我用的是maven。但是我把它放在src/main/resources中,它找不到。当我在com.work.hin.terminology.match(该类的包)的src/main/resources中放置一个文件夹结构时,它找到了它

除非您确实需要文件输入流,否则您可以将行简化为:

InputStream in = getClass().getResourceAsStream("data/levellocks.lv");
Class.getResource()和Class.getResourceAsStream是相对于包的。要获取相对于类路径根的文件,可以在类加载器上调用以下方法:

InputStream in = getClass().getClassLoader().getResourceAsStream("data/levellocks.lv");

是否确保该文件位于二进制文件夹中.class文件旁边?不仅仅是在.java文件旁边的源文件夹中?

到底哪个部分是
null
?它不能是fin,因为
new
从不返回
null
。但是如果文件在那里,它还能是null吗?因为我检查了两次,它看起来不像你想象的那样