Java 变量在再次运行时返回默认值

Java 变量在再次运行时返回默认值,java,Java,我有一个名为currency type的字符串数据类型,声明并初始化为 private static String currencyType = null; public static void main(String[] args) throws IOException { FileWriter fr = new FileWriter("test.txt", true); BufferedWriter bw = new BufferedWriter(fr)

我有一个名为currency type的字符串数据类型,声明并初始化为

private static String currencyType = null;

public static void main(String[] args) throws IOException {
    FileWriter fr = new FileWriter("test.txt", true);
    BufferedWriter bw = new BufferedWriter(fr);

    Scanner sc = new Scanner(System.in);
    currencyType = sc.next();
    bw.write(currencyType);
    bw.close();
}
我通过扫描仪给这个变量赋值,有时是第纳尔,IQ,美元,等等。。。 我创建了一个文件只是为了将currencyType写入文件,问题是我只想给该变量一个类似的值,例如,当我输入$时,每当我运行程序时,当我想将currencyType值写入文件时,它应该一直写入$,问题是它没有,为什么?
当我再次运行该程序时,currencyType将再次为null,我希望该变量获得一次数据类型,并且不允许再次返回null,这里有什么问题?

每次运行该程序时,所有变量都将初始化为其默认值。如果要在会话之间保存信息,必须将其存储在程序之外的某个位置,如下所述:
我希望这能回答您的问题。

在向用户询问货币类型之前,您能否先读取文件中的当前值,并且只询问是否尚未设置货币类型?将配置存储在某个配置文件中,并从用户输入中仅更新一次。下次只需检查配置是否已经存在,不要使用scanner进行输入。例如,它可能是java属性文件谢谢你,这就是我想要的,但是你知道我如何使用它吗?答案太多了?@CoderBoy9O9提供了关于ObjectInputStreams的文档和一个简短的代码片段,你应该能够用它来解决你的问题。