java NullPointerException存在Image

时间:2015-10-02 23:15:14

标签: java image file nullpointerexception

我想要做的是当用户选择图像时,必须将此图像复制到特定文件夹,然后使用该图像。

这是我用来复制图像的内容:

Files.copy(
    Paths.get("C:/../img.png"),
    Paths.get("C:/../src/bgs").resolve(array[array.length-1]),
    StandardCopyOption.REPLACE_EXISTING);

工作正常。问题是如果我在这个命令之后立即使用图像,我得到NullPointerException(如果我在两个命令之间使用类似Thread.sleep(2500)的东西,我没有这个问题)。所以基本上我需要一种方法来检查文件是否可以使用。

到目前为止,我使用了以下代码

// copy file
File f = new File(new_path);
sout(f.exists());
// use file
Image background = Toolkit.getDefaultToolkit().getImage(
    getClass().getResource("/bgs/img.png"));

打印为true,但是当我使用它时,我再次获得NullPointerException ..任何想法?

例外:

Uncaught error fetching image:
java.lang.NullPointerException
    at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:115)
    at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:125)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,所以万一其他人遇到这个问题,这就是我所做的:

替换

Toolkit.getDefaultToolkit().getImage(getClass().getResource("/bgs/img.png"));

ImageIO.read(new File("bgs/img.png"));

小心路径

  

" /bgs/img.png"

     

" BGS / img.png"