1

我正在尝试使用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 驱动器上文件的直接位置,但我仍然得到一个空指针异常。无论如何,我宁愿不这样做,而只是将其保留在类路径中(出于多操作系统支持的目的)。

4

1 回答 1

1
ByteArrayOutputStream baos = new ByteArrayOutputStream(); // create OutputStream
ImageIO.write(image, "png", baos); // write to OS
InputStream imgIs = new ByteArrayInputStream(baos.toByteArray()); // grab bytes from OS
//..
于 2013-04-09T00:24:37.663 回答