我想从当前包中读取一堆图像文件,因为当我的包含我的图像文件的包导出到其他人的计算机时,我希望能够访问这些文件。
我只是想确保我的程序可以读取图像,无论包装是否在我的电脑中。
我试过
File file = new File("images.jpg"); // It is wrong because the path is wrong.
// I want to assign the image as BuffuredImage
BufferedImage dealerCardImage1 = ImageIO.read(file);
我想知道文件的路径应该是怎样的。我该怎么办?
答案 0 :(得分:1)
将您的图像文件放在当前类文件的包中并尝试:
BufferedImage dealerCardImage1 = ImageIO.read(getClass().getResourceAsStream("images.jpg"));
请注意,getClass().getResourceAsStream(path)
返回一个指向从当前包开始的路径的InputStream。
例如,如果您在包HelloWorld
中有一个名为com.example
的类文件,那么HelloWorld.class.getResourceAsStream("images.jpg")
会将InputStream
返回到包含此路径的图像:com/example/images.jpg
< / p>
答案 1 :(得分:0)
如果您从文件使用中读取
Image image = new Image();
image = ImageIO.read(file);
// Read from an input stream
InputStream is = getClass()
.getResourceAsStream("/com/statement/SamplePDFStatementFile.txt");
image = ImageIO.read(is);
//if you read from url
// Read from a URL
URL url = new URL("http://hostname.com/image.gif");
image = ImageIO.read(url);
答案 2 :(得分:-1)
ImageIO.read(file); will return null if no registered ImageReader is not found.
请检查您是否已注册任何ImageReader。
我认为此代码段可以帮助您
File file = new File("images.jpg"); // Assuming images.jpg in my working directory
FileInputStream fis = new FileInputStream(file);
BufferedImage image = ImageIO.read(fis); //reading the image file
您只需将文件包装到FileInputStream中,然后将其传递给read()