Java 从相对路径读取文件

Java 从相对路径读取文件,java,file,io,Java,File,Io,我知道这个问题以前被问过1000次。我尝试了所有的解决方案(也不起作用),但似乎都不起作用 我试图通过提供如下相对路径来读取图像文件: BufferedImage image; image = fm.readMap("..\\..\\resources\\5x5.png"); 阅读: public BufferedImage readMap(String path) { BufferedImage img = null; try{ img = ImageIO.r

我知道这个问题以前被问过1000次。我尝试了所有的解决方案(也不起作用),但似乎都不起作用

我试图通过提供如下相对路径来读取图像文件:

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-->外部源管理-->TestMapAnalysis.java

图像位置:父-->资源-->5x5.png


提前谢谢

相对路径不是相对于源(.java)文件,而是相对于类路径。如果在与src相同的目录中的bin文件夹下有类,则映像的相对路径为

image = fm.readMap("resources\\5x5.png");
您可以使用:

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

要获取资源文件夹中文件的
InputStream

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

src\\resources\\5x5.png
示例代码:

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

您得到了什么错误?您使用的是哪个IDE?@rozkosz线程“main”javax.imageio.IIOException中的异常:无法读取输入文件@Sarz NetBeans 8.0.1Try resources\\5x5.png。我可以通过更改文件的位置来读取文件,但我不应该这样做。