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

时间:2014-05-12 20:09:34

标签: java session-state irc

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

感谢。

1 个答案:

答案 0 :(得分:0)

这取决于您要保留的变量类型,但所有方法都需要您将某些排序数据写入文件。

如果您只需要保留一些变量,可以考虑实现一个可能是简单分隔文本文件的.config文件。

如果你想跟踪一个完整的对象,例如,irc游戏中的玩家,你有一个选择就是将对象解析为JSON,并将其保存到文本文件中,以便以后阅读。您可以将Gson用于此

“玩家”对象的示例:

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);

在代码中使用该对象