java NullPointerException 存在图像

标签 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)

最佳答案

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

替换

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

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

小心路径

"/bgs/img.png"

"bgs/img.png"

关于java NullPointerException 存在图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917154/

相关文章:

java - Infinispan相当于ehcache的copyOnRead和copyOnWrite

java IS-A关系考试题混淆

JavaMail 无法从 docker 容器发送电子邮件

image - 我们可以在TGIFImage delphi组件中停止动画吗?

CSS Flex Box Gallery 问题

java - 防止 JTable 单元格编辑器在验证失败时留下 "edit mode"

JavaFX 需要多个 ImageView 节点而不是对一个节点的引用?

file - 大文件的 Internet Explorer FileReader 结果为空

asp.net - 在 UpdatePanel 中使用 ASP.NET FileUpload 控件时出现问题?

java - 如何使用Java显示存储在数组列表中的特定值