2013-05-09 157 views
0

我試過:的Java讀取相對路徑文件中的項目和.jar

public class FilePath { 

    public File return_path() { 

     URL url = getClass().getResource("file.txt"); 
     File file = new File(url.getPath()); 
     return file; 
    } 
} 

如果我打印,輸出的是這樣的路徑:「/媒體/日期/%20uni%C3%A0 /Java/project%20java%20201/SearchInFiles/build/classes/searchinfiles/hello.txt」

我也爲了不重新定義每次,最終一個.jar將讀取該文件的路徑創造了這個方法。

有可能是一個奇怪的字符問題?

順便說一下,當我把它從主類:

public static void main(String[] args) { 

     FilePath path = new FilePath(); 
     File file = path.return_path(); 
     System.out.println (file); 

try{ 
BufferedReader input = new BufferedReader(new FileReader(file)); 

      String line; 

    int i = 0; 
    while ((line = input.readLine()) != null) 
    { 
     System.out.println(line); 
    } 
      input.close(); 
     } 
     catch(Exception ex){ 
      System.err.println("Error: " + ex.getMessage()); 
     } 
} 

我有「文件不存在」的錯誤。

我該如何解決? 謝謝

+2

看一看右邊的類似的問題.... – jlordo 2013-05-09 20:45:32

+2

你爲什麼不使用'的getClass()。的getResourceAsStream(文件名) '直接? – hoaz 2013-05-09 20:51:17

+0

這工作更好,謝謝 – Frank 2013-05-09 21:40:34

回答

0

你的網址被轉義了,這對網頁瀏覽器非常有用,例如你不能在URL中寫空格,並且它們在ascii中表示爲「%20」或十六進制20或char 32。

你想要的是反轉義代碼這一點,following post可以幫助你

相關問題