Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何保存上次会话的变量值(程序退出)_Java - Fatal编程技术网

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

Java 如何保存上次会话的变量值(程序退出),java,Java,如何在程序中保存变量的值,然后在下一次程序运行时重用它?我不想对文件进行写/读操作。您可以使用内存中的键值存储,如,或内存中的数据库,如。但根据您的需要,这可能有些过分。请使用 数据是基于类的完全限定名存储的,因此包名和类名是相关的。从: 此类允许应用程序存储和检索用户和系统首选项以及配置数据。此数据持久存储在依赖于实现的备份存储中。典型的实现包括平面文件、特定于操作系统的注册表、目录服务器和SQL数据库。此类的用户不必关心备份存储的详细信息 可以使用存储设置。针对两个目标群体:通常为用户设置,

如何在程序中保存变量的值,然后在下一次程序运行时重用它?我不想对文件进行写/读操作。

您可以使用内存中的键值存储,如,或内存中的数据库,如。但根据您的需要,这可能有些过分。

请使用

数据是基于类的完全限定名存储的,因此包名和类名是相关的。从:

此类允许应用程序存储和检索用户和系统首选项以及配置数据。此数据持久存储在依赖于实现的备份存储中。典型的实现包括平面文件、特定于操作系统的注册表、目录服务器和SQL数据库。此类的用户不必关心备份存储的详细信息


可以使用存储设置。针对两个目标群体:通常为用户设置,较少为应用程序/系统设置。他们可以使用平台设置,如在Windows下


但是,也存在将设置存储为XML的可能性,这是一种更干净的方法,因为它不涉及可能受到保护的Windows注册表。然后,通常的位置将位于目录系统.getPropertyuser.home下的.myapp之类的目录中。

我不想对文件进行写/读操作。我们知道原因吗?您的问题看起来好像不想使用文件写入/读取使用数据库?但是你为什么要这样做呢?相关人员:我不知道,这就是我问的原因。。我不想轻易修改,你应该编辑你的问题来澄清你的问题。我认为@Pshemo正中要害,这是一个XY问题。听起来您想知道的是如何保存数据,以便在下次程序运行时重用,这样,除了您的程序和读取和/或更改数据外,什么都不会发生。这与您将数据保存在何处(即保存在文件中)无关。这是一个有趣的想法,但当我们重新启动机器时,它是否也会起作用?因为我从未使用过这些工具,而且这个案例似乎非常重要?内存中的数据库如何在重新启动后存活?@Pshemo it不会,因为您只是将其写入内存,当您重新启动机器时,内存将被擦除。不过,您可以将Redis托管在不重新启动的其他服务器上,然后写入该服务器。@JBNizet这就是我的意思。但我假设它可能有一种机制,在重新启动时将数据存储在磁盘上,当机器开始运行时,将数据读取到内存并从磁盘中删除。
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");
    }
}