如何保存上一个会话的变量值(程序退出)

时间:2015-02-05 16:55:27

标签: java

如何在程序中保存变量的值,然后在下一个程序运行时重复使用?我不想用文件写/读来做。

3 个答案:

答案 0 :(得分:5)

使用Java Preferences API

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数据库。此类的用户无需关心后备存储的详细信息。

答案 1 :(得分:1)

可以使用java.util.prefs.Preferences存储设置。对于两个目标组:通常是用户设置,而不是应用程序/系统设置。他们可以使用平台设置,例如在Windows下。

然而,还存在将设置存储为XML的可能性,这是一种更简洁的方式,因为它不会触及可能受到保护的Windows注册表。然后,习惯位置将位于目录System.getProperty("user.home")下的“.myapp”目录中。

答案 2 :(得分:0)

您可以使用内存键值存储(如Redis)或内存数据库(如H2)。但根据您的需要,这可能有点过分。