2013-07-22 74 views
0

我的java文件例如有這樣的路徑com.company.project.util和文件javaClass.java。在此文件中,我編寫了讀取另一個文件的過程,該文件位於文件夾META-INF/example.xml中。需要哪個相對路徑

這個文件夾com.company.project.utilMETA-INF位於相同的文件夾src。 我必須將哪個相對路徑傳入此javaClass.java才能實現example.xml?需要多少次使用../?因爲我對這個大包名稱有點困惑。

+0

你加載使用一個FileInputStream文件,或像Jayesh的答案解釋的getResourceAsStream(),或者其他一些機制? – Will

+0

@將使用FileReader –

+1

然後它取決於你在哪裏調用Java程序。這是工作目錄。如果你不確定工作目錄,你可以使用System.out.println(new File()。getAbsolutePath()); – Will

回答

0

如果從程序包根目錄(src)運行程序並使用FileReader,那麼您只需使用「META-INF/example.xml」。如果工作目錄不同,請根據需要修改此路徑。

0

只給你例子

我的Test1類是默認的包,我的資源文件夾位於src文件夾中,我能夠訪問的資源。你可以根據你的需要來繪製你的需求。

公共類的Test1 {

public static void main(String[] args) { 
    new Test1(); 
} 
Test1(){ 
    BufferedInputStream file= (BufferedInputStream) this.getClass().getResourceAsStream("resources/a.txt"); 
    try { 
     System.out.println((char)file.read()); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

另外,如果你的java類是在任何包,那麼你可以去使用類路徑「../」作爲退一萬步爲每個文件夾。一旦你達到課堂路徑,給資源的路徑。

0

如果該文件是在源文件夾,然後它在你的classpath,你就可以用作爲一種資源的絕對路徑來加載它:

this.getClass().getResourceAsStream("/META-INF/example.xml");