2012-04-23 89 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); 
}