2011-03-13 54 views
0

嗨,我是新來的Java,所以善待我。 我正在閱讀一個文件的信息,並希望寫信給它。我正在使用eclipse。寫入包內的文件Java

我的目錄結構是

ProjectName-->src-->Package(這是我的包在我的Java文件是)

我想創建一個jar文件。我的文本文件在包中。

要從文件中讀取我正在使用下面的代碼。

InputStream is = getClass().getResourceAsStream("BookingInfo.csv"); 
InputStreamReader isr = new InputStreamReader(is); 
br = new BufferedReader(isr); 

現在我想寫信給同file.I正在做這樣的事情

String filename ="src/Package/BookingInfo.csv";  
File myFile = new File(filename); 
fw = new FileWriter(myFile,true); 
fw.write(report); 
fw.close(); 

但不知何故,它不更新它。你能否在這方面給我提供幫助?

回答

0

不幸的是,您將不能寫入.jar文件。您可以寫入文件系統中的文件,但.jar將是不可變的。

可能以編程方式解壓縮.jar(進入臨時目錄),覆蓋該文件,然後重新生成.jar文件。見documentation on the .jar-related APIs.

+0

嗨,Brian,我還沒有創建jar文件,這是我的最終目標。我不能回寫到包中的文本文件。 – syousuf 2011-03-13 19:52:34

+0

你不能回寫罐子,也不應該嘗試。您的應用程序狀態應與應用程序二進制文件保持分開。使用系統屬性或環境變量來告訴你的應用程序關於數據目錄。 – 2011-03-13 20:54:47

+0

嗨Konstantion,我甚至不能回寫到包中的文本文件。 – syousuf 2011-03-13 21:10:38

0

什麼:

String url = getClass().getResource("BookingInfo.csv").getFile(); 
fw = new FileWriter(url ,true); 
fw.write(report); 
fw.close(); 
+0

這並不適用於開箱即用。你會在第一線獲得NPE。 – 2013-04-30 16:33:24

+0

確保'BookingInfo.csv'在這個類的目錄中 – oliholz 2013-05-02 06:27:10

1

你的項目的工作區文件不會自動syncronized,所以你必須在Eclipse中刷新。比你會看到變化。

1

您需要在項目內創建新文件時提供完整路徑。試試這段代碼:

File xmlFile = new File(「src/com/company/project/xml/tags.xml」);

而且您將能夠在com.company.project.xml包中創建文件。