2012-04-23 108 views
2

我有一個文件存儲在我的jar中,我使用了一個默認設置文件。我希望將該文件寫入用戶定義的路徑。我如何寫出來?我試圖寫出的這個文件與我的類文件位於相同的位置,它將寫入此文件Java如何將資源(內部文本文件)寫入目錄?

+0

我不知道,如果你能如果該類被打包在jar中,則寫入類文件位置。 – 2012-04-23 15:06:32

+0

另請參閱[這個答案](http://stackoverflow.com/a/5052359/418556)關於一個安全的地方來存儲一個文件,或'字符串'表示用戶選擇的位置的完整路徑'JFileChooser',儘管另一種存儲路徑的方法是['Preferences'](http://docs.oracle.com/javase/7/docs/api/java/util/prefs/Preferences.html)。 – 2012-04-23 15:55:24

+0

*「默認設置文件」*屬性+值對存儲爲['Properties'](http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html)。這些偏好有哪些形式? – 2012-04-23 16:01:41

回答

4

使用getResourceAsStream訪問資源。爲您希望編寫的文件創建一個FileOutputStream。從一個流中讀取並寫入另一個流。優選地,使用緩衝,並且當你完成時不要忘記關閉你的流。

請參閱Location-Independent Access to Resources

0

給予resource要寫信給定Path path,那麼你可以使用:

try(InputStream is = this.getClass().getResourceAsStream(resource)){ 
    Files.copy(is, path); 
} catch (Exception e){ 
    throw new RuntimeException(e); 
}