Java 为什么getClass().getResourceAsStream(file.getAbsolutePath())会引发nullPointerException?

Java 为什么getClass().getResourceAsStream(file.getAbsolutePath())会引发nullPointerException?,java,image,nullpointerexception,inputstream,filechooser,Java,Image,Nullpointerexception,Inputstream,Filechooser,在我为我的问题寻找解决方案后&阅读了比我更专业的类似问题,。。。嗯,我希望你注意我的问题,尽管它看起来很简单! 我正在做一个项目,它通过FileChooser打开文件,然后我试图在窗格中显示它。问题是getClass()。getResourceAsStream(file.getAbsolutePath())返回null。因此,虽然我可以打印路径并查看它是否正确,但我无法在创建图像时使用它。我的部分代码是: FileChooser fileChooser = new FileChooser

在我为我的问题寻找解决方案后&阅读了比我更专业的类似问题,。。。嗯,我希望你注意我的问题,尽管它看起来很简单! 我正在做一个项目,它通过FileChooser打开文件,然后我试图在窗格中显示它。问题是getClass()。getResourceAsStream(file.getAbsolutePath())返回null。因此,虽然我可以打印路径并查看它是否正确,但我无法在创建图像时使用它。我的部分代码是:

    FileChooser fileChooser = new FileChooser();
    File file = fileChooser.showOpenDialog(stage);

例外情况是:

    Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Input stream must not be null ...
我通过NetBeans在Ubuntu上工作。 我真的很感激你的帮助。谢谢。

使用图像IO:

Image img = ImageIO.read(file);
getResourceAsStream
需要类路径上的路径。由于资源可能位于jar中,所以它的完整URI应该是
jar:file:/…../xyz.jar!/。并且
文件
位于文件系统上


不能混合使用这些方法,只有
Path
是一种新的泛化方法,允许在多个“文件”系统中使用路径。

如果需要解决方案,您应该提供整个异常消息,这将使它更容易getResourceAsStream的参数不是文件路径。使用
新图像(file.toURI().toString())
读取文件。@VGR谢谢,它成功了。谢谢,但我想使用文件系统。实际上,我想解决这个问题&在这之后,为每种类型的文件扩展类。现在,我想看看我是否能像photoshop那样做一些事情。说得清楚一点:上面的操作与你的文件选择器一起工作,在物理磁盘上选择一个文件。ImageIO还可以读取任何输入流,而不仅仅是文件。非常感谢。我会多读一些&多读一些,以便更好地理解你教给我的东西。
Image img = ImageIO.read(file);