无法在不同的计算机上读取具有相同URL和相同文件结构的文件

时间:2016-11-17 18:03:13

标签: java url filepath ioexception

所以我编写了一个小应用程序,它使用表示文件路径的字符串,因此我可以创建一个文件,然后创建一个缓冲的Image。我已经省略了此示例的不相关代码:

public class MorphImage {
private final String URL0 = "pic1.jpg";

//....

URL url = getClass().getResource(URL0);
File file = new File(url.getPath());
BufferedImage img = ImageIO.read(file);

我的文件结构如下:

 projectName
            src
               package1
                       MorphImage.java
                       pic1.jpg

在运行Windows 10的笔记本电脑上,这很好用,但是在我的Windows 8 pc上使用完全相同的项目,我在最后一行得到IIOException: Can't read file!。两台计算机使用相同的Eclipse版本和相同的JDK版本。我不知道该怎么做。我在我的Windows 8机器上尝试过很多不同的文件路径,但只会抛出NP,所以路径是正确的。

编辑:以下解决方案:

    URL defaultImage = MorphImage.class.getResource(URL0);
    File file = new File(defaultImage.toURI());
    BufferedImage img = ImageIO.read(file);

1 个答案:

答案 0 :(得分:0)

尝试获取资源流,文件路径如下

的getClass()getClassLoader()的getResourceAsStream("包1 / pic1.jpg&#34);。。