从相对路径读取文件

时间:2014-12-19 12:10:22

标签: java file io

我知道此问题曾被问过1000次。我确实尝试了所有的解决方案(How to read file from relative path in Java project? java.io.File cannot find the path specified也没有用),但是它们似乎都没有用。

我试图通过提供这样的相对路径来读取图像文件:

BufferedImage image;
image = fm.readMap("..\\..\\resources\\5x5.png");

读:

public BufferedImage readMap(String path)
{
    BufferedImage img = null;
    try{
        img = ImageIO.read(new File(path));
    }
    catch (IOException e){
        System.out.println("Image not found.");
        e.printStackTrace
    }

    return img;
}

代码的位置:

父母 - > src - > externalsourcemanagement - > TestMapAnalysis.java

图片的位置:parent - >资源 - > 5x5.png

提前致谢!

3 个答案:

答案 0 :(得分:3)

相对路径与Source(.java)文件无关,它相对于类路径。如果bin文件夹下的类与src位于同一目录中,则图像的相对路径为

image = fm.readMap("resources\\5x5.png");

答案 1 :(得分:1)

您可以使用:

getClass().getResourceAsStream("/" + fileName);

在资源文件夹中获取InputStream文件。

答案 2 :(得分:1)

尝试更改图像的位置,如:

src\\resources\\5x5.png

示例代码:

String pathToImageSortBy = "nameOfProject/resources/5x5.png";
ImageIcon SortByIcon = new ImageIcon(getClass().getClassLoader().getResource(pathToImageSortBy));