你好,亲爱的程序员,
我目前正在尝试将计算机中的文件导入InputStream。更确切地说,它是一张图片。我有两种方法可以解决这个问题。这是第一个,试图从我的计算机上获取图片:
public Image getImage() {
Image i = null ;
File f = null;
try {
f = new File("/my/path/linux.png");
InputStream is = new FileInputStream(f);
i = m_win.loadImage(is);
}catch (Exception e) {
}
return i;
}
这是loadImage方法:
public Image loadImage(InputStream is) {
BufferedImage img = null;
try {
img = ImageIO.read(is);
return new GuiImage(img);
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
当进入loadImage(is)时返回NullPointerException。我试图从InputStream读取一个字节,它返回的东西很好。路径还可以(顺便说一句,我在macOS上有任何结果吗?)
不幸的是,我在调试时无法进入loadImage方法,该代码是GUI工具箱的一部分。是因为我正在将其运行到可运行的对象中吗?我还在学习,所以我很困惑。
感谢您的回答,希望我提供了足够的详细信息。
ImageIO是javax.imageio.ImageIO的库类。
您可以尝试运行以下代码
BufferedImage img = null;
try {
img = ImageIO.read(is);
return new GuiImage(img);
} catch (IOException ex) {
ex.printStackTrace();
}
此后立即
InputStream is = new FileInputStream(f);
查看是否有效