Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IllegalArgumentException输入==null_Java_Image_Embedded Resource_Javax.imageio_Illegalargumentexception - Fatal编程技术网

Java IllegalArgumentException输入==null

Java IllegalArgumentException输入==null,java,image,embedded-resource,javax.imageio,illegalargumentexception,Java,Image,Embedded Resource,Javax.imageio,Illegalargumentexception,我正在尝试以InputStream格式读取图像。但由于某种原因,我总是得到一个IllegalArugmentException 这是我的密码: BufferedImage i = null; i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path)); 基本上,名称为的资源不存在。类加载器定位资源的方式与名为res.graphics.whatever的类相同,当然还有更相关的whatever。因此,只需使用

我正在尝试以
InputStream
格式读取图像。但由于某种原因,我总是得到一个
IllegalArugmentException

这是我的密码:

BufferedImage i = null; 
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));

基本上,名称为的资源不存在。类加载器定位资源的方式与名为
res.graphics.whatever的类相同,当然还有更相关的whatever。因此,只需使用相同的方法使类可访问,即可访问此资源。

原因:

您的资源的计算结果为
null
,这就是异常的原因

抛出: IllegalArgumentException-如果输入为
null

解决方案:

如果
res/graphics/which
在根目录的类路径中,那么它将返回NOTNULL

似乎
“/res/graphics”+路径的计算结果不符合您的期望值

下面是如何使用
buffereImage

public File myImg = new File("someImage.png");
BufferedImage in = ImageIO.read(myImg); 
//Just an example
BufferedImage newImage = new BufferedImage(in.getWidth(), in.getHeight(), BufferedImage.TYPE_INT_ARGB);

“/res/graphics”+path
的计算结果是什么?您能确保资源路径可访问吗?您确定您的程序能够读取该文件吗?请尝试将
getresourceastream
更改为
getResource
。它们计算路径的方式是不同的。@AndrewThompson API文档说它们是相同的,并且它们都委托给类加载器。这可能是一个错误。
文件
不起作用。