如何保存上次会话的变量值(程序退出)
答
import java.util.prefs.*;
public class Example {
// Preference key
private static final String FRUIT = "fruit";
public void savePreference(String favoriteFruit) {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
prefs.put(FRUIT, favoriteFruit);
}
public String readPreference() {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
return prefs.get(FRUIT, "default");
}
}
数据是基于您的类的完全限定名称存储的,因此您的包名和类名是相关的。从documentation for the Preferences class:
此类允许应用程序存储和检索用户和系统首选项和配置数据。这些数据永久存储在一个依赖于实现的后台存储中。典型的实现包括平面文件,特定于操作系统的注册表,目录服务器和SQL数据库。这个类的用户不需要关心后备存储的细节。
答
可以使用java.util.prefs.Preferences存储设置。对于两个目标组:通常是用户设置,不太经常使用应用程序/系统设置。他们可以使用平台设置,就像在Windows下一样。
然而,也有可能将设置存储为XML,这是一种更简洁的方式,因为它不会触及可能受保护的Windows注册表。然后,一个惯用的位置将位于目录System.getProperty("user.home")
下的“.myapp”目录中。
“*我不想用文件写入/读取*”我们可以知道原因吗?你的问题看起来像[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – Pshemo 2015-02-05 16:57:54
'不想用文件写入/读取'使用数据库?但你为什么要这样做? – 2015-02-05 16:58:11
相关:[保持Python脚本运行之间的内存中的持久变量](http://stackoverflow.com/questions/6687660/keep-persistent-variables-in-memory-between-runs-of-python-script) – Christian 2015-02-05 16:58:32