2014-12-05 189 views
0

目前我正在開發一個Java應用程序來進行調查。我想要讀/寫一個.txt文件,創建一個.csv來存儲輸入的數據。下面是我迄今爲止使用的編寫數據的代碼 - 當然,這使得JAR文件不可移植,因爲它具有絕對路徑。從JAR讀取/寫入.txt文件

File file = new File("C:/Files/JavaApp/src/text.text/"); 
FileWriter fw = null; 
BufferedWriter bw = null; 
try { 
    fw = new FileWriter(file, true); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 
bw = new BufferedWriter(fw); 
try { 
    bw.write("blah" + ","); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 
try { 
    bw.newLine(); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 
try { 
    bw.close(); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 

我嘗試了好幾種方法,如ClassName.class.getResource("Text.text");但它總是會返回一個反射或一個空指針錯誤。

我知道寫入JAR中的文件確實會造成一些問題,這意味着我必須指向外部的文件才能讀/寫。但是我不知道如何在代碼中進行預處理。我需要JAR文件是完全可移植的。即使這意味着它必須保存在一個目錄中,所以JAR可以搜索該目錄中的.txt文件。或者,還有另一種方式嗎?

如果有人能幫助我,我會非常感激。

+0

不知道你是否可以使用它,但可以試試java.util.jar包(http://docs.oracle.com/javase/7/docs/api/java/util/jar/package -summary.html) – herrlock 2014-12-05 23:33:44

+2

,也讀這個答案http://stackoverflow.com/a/5052359/3680684 – herrlock 2014-12-05 23:35:56

+0

目前還不清楚被問到什麼。這篇文章中唯一的問題是「或者,還有另一種方式?」。你想要完成什麼? – VGR 2014-12-05 23:42:06

回答

1

從Jar文件讀取:How to read a file from jar in Java?

該文件是一個存檔文件。它是一個帶有.jar擴展名的zip文件。你不應該寫信給它。如果jar文件已被簽名(安全預測),則不能寫入。更改文件中的單個位將使其無效。

你應該做的是在Jar中存儲一個默認文件,並將其加載到「user.home」文件夾中(如果它尚未存在)。