2014-12-19 158 views
3

我知道這個問題已被問過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

圖片位置:p arent - >資源 - > 5x5.png

在此先感謝!

+0

你得到什麼錯誤? – rapvelopment

+0

您正在使用哪個IDE? – Sarz

+0

@rozkosz線程「main」中的異常javax.imageio.IIOException:無法讀取輸入文件! –

回答

3

相對路徑與Source(.java)文件不相關,它相對於類路徑。如果你有bin文件夾下的類在同一個目錄中的src,然後像你的相對路徑將是

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

這實際上工作,謝謝! –

1

您可以使用:

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

得到的資源文件夾中文件的InputStream

1

喜歡嘗試改變圖像您的位置:

src\\resources\\5x5.png 

示例代碼:

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

我可以通過改變它的位置來閱讀文件,但是我不應該那樣做。 –