Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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,例如,我将一个私有成员初始化为String str=“a”。程序完成后,我希望str变成“B”。第二天,当我运行同一个程序时,str的值是“B”,而不是“A” 谢谢。您需要将数据写入持久性存储位置,例如数据库或磁盘上的文件。(在SLaks上展开回答)-如果您希望在执行之间持久化程序中的任何信息,则该信息需要存储在程序外部的某个位置。这可以是数据库(通常用于大型/复杂程序)或文件(用于小型程序),或介于两者之间的任何内容(异地云存储等)。在任何“保存文档”的桌面应用程序中都使用相同的概念——它基本

例如,我将一个私有成员初始化为String str=“a”。程序完成后,我希望str变成“B”。第二天,当我运行同一个程序时,str的值是“B”,而不是“A”


谢谢。

您需要将数据写入持久性存储位置,例如数据库或磁盘上的文件。

(在SLaks上展开回答)-如果您希望在执行之间持久化程序中的任何信息,则该信息需要存储在程序外部的某个位置。这可以是数据库(通常用于大型/复杂程序)或文件(用于小型程序),或介于两者之间的任何内容(异地云存储等)。在任何“保存文档”的桌面应用程序中都使用相同的概念——它基本上是保存在一个文件中的状态,您可以通过程序重新加载该文件

Java中的一个简单示例是使用属性文件—给出了如何将信息写入属性文件的示例—您可以在下次启动应用程序时使用相关API读回这些属性


如果你更喜欢冒险,Java中有一些提供持久性功能的软件,但这听起来比你在应用程序中寻找的要复杂得多。

你能告诉我更多关于“第二天当我运行同一个程序时,str的值是“B”,而不是“A”吗“。urs程序驻留在哪里?您是否通过启动服务器再次启动程序? 在程序调用的最后一个退出点,执行以下代码 导入java.lang.reflect.Field

public class Reflection {
    String str = "A";
    void test(){
        Class test=    Reflection.class;
        try {
      Field aa=      test.getDeclaredField("str");
      aa.setAccessible(true);
      try {

        aa.set(this, "B");
        System.out.println(str);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NoSuchFieldException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


public static void main(String[] args) {
    Reflection test=new Reflection();
    test.test();
}
}

是的,我可以把它写入一个文件,但因为它是一个非常小的数据。我想知道是否有任何方法可以避免这种情况。@user697911要么程序永远不会停止执行(一个坏主意-如果你的计算机崩溃怎么办?),要么它将数据写入文件或数据库。你的选择;)@user697911:您可能希望使用属性文件。为什么编程语言不支持此功能?这似乎是一个非常有用的文件,也是一件简单的事情。属性文件仍然是一个物理文件,谁的值必须读取和写入?第二天?!听起来你在讲故事。