2010-11-05 45 views
1

我试图保存文件目录,这样当我的应用程序再次打开时,目录就会被记住。我想将目录保存到我的源代码包中名为'directories.txt'的文件中。保存源文件包中的文件

我学会如何从中通过阅读:

getClass().getResourcesAsStream("/getresources/directories.txt") 

所以我的问题是我怎么写这个文件?这可能吗。

感谢,

NT

+0

http://stackoverflow.com/questions/4056682/how-can-my-java-program-store-files-inside-of-its-jar-file – 2010-11-05 07:11:03

回答

1

这是不可能的。您获得的文件是应用程序类路径中的资源,如.class文件。就像一个类文件一样,它不能被重写到原来的位置(可以是jar,zip或binaries.class文件夹)。它是只读的,不能用于持久性。

要坚持任何数据,你将不得不使用外部资源。您可以在文件系统中的任何路径中写入实际文件。该文件将在您的类路径文件外部。

+0

喜米格尔,感谢那的重复信息。我刚才认为这将是可能的,并认为这将是一个很好的解决方案,没有文件四处闲逛。太糟糕了。然后通常保存文件。 – nite 2010-11-05 06:43:15

+0

@ntmp:不,你绝对不应该那样做。 – 2010-11-05 07:33:41

0

在某些情况下可能:请参阅this SO answer。但是,这很复杂,我强烈建议你不要尝试。

存在用于存储用户偏好信息的各种OS特定和Java标准/优选方式。使用它们,不要试图破解JAR文件。

1
  1. 在应用程序的安装目录

    保存用户数据是根本错误!即使在同一时间,机器上也可能有多个用户。而且他们可能不(实际上不应该)对应用程序文件具有写入权限。 “有一个用户,他拥有整个机器”的心智模式在10年前即使在Windows(大约在50年前的其他地方)也是错误的。使用Java Preferences API而不是发明自己的机制。