java - 通常在哪里保存来自 Java 应用程序的外部数据?

标签 java io

好吧,问题很简单。

我有一个 Java 程序,我正在将它的一些保存文件提取到外部位置。

现在,我使用 C:/ApplicationName,但是,这是一种非常糟糕的方式。

我知道很多我可以使用的位置,例如:

%Appdata%
C:\Program Files (x86)
C:\Users\Users\Documents (Ive seen some indie games use this.)

其他地点?

但我不知道什么时候使用合适的。

如果我想支持 Linux 和 OSX,是否有支持它的库,或者我必须手动将它们包装到 if/else 中 System.getProperties("os.name")?

最佳答案

请记住,有时当游戏保存到特定目录时,它们并不是为跨平台构建的。

有两种方法可以做到这一点。第一个(也是我个人的首选版本)是保存在应用程序的目录中。这也具有便携的优点。但是,保存链接到应用程序,因此如果用户删除应用程序并稍后重新安装,他们将丢失数据(这可能是好事,也可能不是好事)。

另一种选择是使用 System.getProperty() .

具体来说,您可以使用:

System.getProperty("user.dir");
System.getProperty("user.home");
System.getProperty("user.name");

找出文件的存放位置。

这样会复杂很多,所以首选第一种方法。

关于java - 通常在哪里保存来自 Java 应用程序的外部数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23740521/

相关文章:

java - 使用java自动化实时数据

Java:操作数语句的含义

java - 检查给定的字符串是否可以由给定的一组字符串组成

java - 在 Junit 4 中构建测试套件

c - getchar() 无法识别我输入中的水平制表符

c++ - 从特定坐标读取?

c++ - cout 不产生输出

java - 查找字符串内的子字符串

c# - 找不到路径的一部分?

performance - 如何提高Common Lisp中逐行读取大文件的速度