【发布时间】:2013-03-31 05:57:42
【问题描述】:
我正在尝试使用ImageIO 类来保存图像,然后使用输入流获取资源。我的问题是,每当我尝试创建输入流时,我都会收到NullPointerException。如果我只是简单地将图像文件放在类路径中,它就可以工作。这是我的代码:
ImageIO.write(image, "png", new File("temp.png"));
InputStream imgIs = AptCap.class.getResourceAsStream("temp.png");
byte[] imgData = new byte[imgIs.available()]; // I get null here.
我还尝试为它们指定 C 驱动器上文件的直接位置,但我仍然得到一个空指针异常。我宁愿不这样做,而只是将其保留在类路径中(出于多操作系统支持的目的)。
【问题讨论】:
-
将
new File("temp.png")更改为theByteArayOutputStream并完全避免使用本地磁盘。 -
@AndrewThompson 什么是“theByteArayOutputStream”。我需要定义或导入的变量......或者什么。
-
..我很失望你选择了这种方式来解决眼前的问题。在这种情况下,创建文件似乎既浪费又不必要。
-
同意@AndrewThompson。在这种情况下,请尽量将其远离磁盘。
-
@AndrewThompson 我会继续尝试。
标签: java image file-io inputstream javax.imageio