[英]Java ImageIO.read(getClass().getResource()) returns null
[英]Understanding “ImageIO.read(getClass().getResource(path))”
我的问题是关于以下代码示例:
public class BufferedImageLoader {
private BufferedImage image;
public BufferedImage loadImage(String path) throws IOException {
image = ImageIO.read(getClass().getResource(path));
return image;
}
}
我查看了Java-API并在ImageIO类中找到了3种不同的read()方法:
1:读(文件输入)
2:read(ImageInputStream流)
3:读(InputStream输入)
4:读取(URL输入)
我的问题是:在这个例子中使用了哪四种方法? 我有点困惑,因为在示例中站立
read(getClass().getResource(path));
“getClass()”在这里返回“BufferedImageLoader”,对吧? 然后我们调用方法“read(getClass()。getResource(path))”,它必须位于BufferedImageLoader类中,但事实并非如此!
哪里我错了?
getClass().getResource(path))
返回一个URL
,所以在这种情况下,它会使用ImageIO.read(URL)
另外,如果您使用Class#getResourceAsInputStream
,它将返回一个InputStream
,这意味着它将使用ImageIO.read(InputStream)
代替
getClass()返回java.lang.Class的类型化实例,在你的情况下Class<? extends BufferedImageLoader>
Class<? extends BufferedImageLoader>
,它代表BufferedImageLoader
类。 此方法继承自java.lang.Object并返回该对象的运行时类。
java.lang.Class
的getResource(path)方法返回java.net.URL的实例
<Script = "JavaScript">
alert("Hello");
</Script>
警报('所选项目已成功删除')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.