Java 在会话之间保存变量状态?

Java 在会话之间保存变量状态?,java,session-state,irc,Java,Session State,Irc,因此,我正在为我的一位朋友开发一个Java IRC机器人,作为一个附带项目。虽然开发进展顺利,但我有点不确定如何在会话之间保存某些变量的当前状态。它没有GUI,所以我不认为它会太复杂,但到目前为止我的搜索努力都是徒劳的 谢谢。这取决于您希望保留的变量的种类,但是所有方法都需要您将一些排序数据写入文件 如果只需要保存少量变量,可以考虑实现一个.CONFIG文件,它可以是一个简单分隔的文本文件。 如果您想跟踪整个对象,比如irc游戏中的玩家,那么您可以选择将该对象解析为JSON,并将其保存到文本文件

因此,我正在为我的一位朋友开发一个Java IRC机器人,作为一个附带项目。虽然开发进展顺利,但我有点不确定如何在会话之间保存某些变量的当前状态。它没有GUI,所以我不认为它会太复杂,但到目前为止我的搜索努力都是徒劳的


谢谢。

这取决于您希望保留的变量的种类,但是所有方法都需要您将一些排序数据写入文件

如果只需要保存少量变量,可以考虑实现一个.CONFIG文件,它可以是一个简单分隔的文本文件。

如果您想跟踪整个对象,比如irc游戏中的玩家,那么您可以选择将该对象解析为JSON,并将其保存到文本文件中,以便稍后阅读。你可以用这个

“玩家”对象的示例:

public String savePlayer(String playerName){
    Gson gsonPretty = new GsonBuilder().setPrettyPrinting().create();
    String playerFile = System.getProperty("user.dir")+"\\players\\"+playerName;
    String jsonplayers = gsonPretty.toJson(players.get(playerName));
    try{
        FileWriter writer = new FileWriter(playerFile+".json");
        writer.write(jsonplayers);
        writer.close();
        return "Player file saved successfully!";

    }catch(Exception e){
        e.printStackTrace();
    }
    return "Something went wrong";
}
然后,您可以创建一个加载方法,该方法具有硬编码的文件名或字符串输入,以确定要加载的文件,并使用以下方法:

playerFromJson = gson.fromJson(jsonString, Player.class);

要在代码中使用该对象,请缩小此问题的范围,除非您想要的答案是这样的:“将值写入文件系统中的文件。启动时,检查已知文件(在前一句中)是否存在,如果存在;然后从该文件加载值。否则,将值设置为默认值。”如要求,问题的答案是:Q.如何在会话之间保存状态?A.保存会话之间的状态。