0

除了保存和/或加载数据之外,它会做所有需要做的事情。我假设问题出在加载上,即使 try/catch 没有异常。这些文件是由插件创建的,但它不会加载应该在关闭时保存的数据......

完整的课程可以在这里找到:http: //pastebin.com/pK3NCPfM

加载方法:

    public void getClans(){
        try { 
            // Load the Clans
            FileInputStream f_in = new FileInputStream("Clans.data");
            ObjectInputStream obj_in = new ObjectInputStream (f_in);
            @SuppressWarnings("unchecked")
            HashMap<String, Clan> Clans = (HashMap<String, Clan>) obj_in.readObject();
            obj_in.close();
            getLogger().info("Clans successfully loaded");
            } catch (Exception e) {
            getLogger().info("Error loading clan files...");
            getLogger().info(e.getMessage());
            } 
    }

    public void getPlayers(){
        try { 
            // Load the players that are in a clan
            FileInputStream f_in = new FileInputStream("clanPlayers.data");
            ObjectInputStream obj_in = new ObjectInputStream (f_in);
            @SuppressWarnings("unchecked")
            HashMap<String, String> clanPlayers = (HashMap<String, String>) obj_in.readObject();
            obj_in.close();
            getLogger().info("clanPlayers successfully loaded");
            } catch (Exception e) {
            getLogger().info("Error loading clanPlayer files...");
            getLogger().info(e.getMessage());
            } 
    }

更新:我不确定为什么这不起作用。如果有人可以帮助我修复有问题的线路,我应该很高兴!

    public void getPlayers(){
        try { 
            // Load the players that are in a clan
            FileInputStream f_in = new FileInputStream("clanPlayers.data");
            ObjectInputStream obj_in = new ObjectInputStream (f_in);
            @SuppressWarnings("unchecked")
            clanPlayers = (HashMap<String, String>) obj_in.readObject(); // Error on this line. 
            //I want the HashTable ClanPlayers to be a copy of the object that was saved
            obj_in.close();
            getLogger().info("clanPlayers successfully loaded");
            } catch (Exception e) {
            getLogger().info("Error loading clanPlayer files...");
            getLogger().info(e.getMessage());
            } 
    }
4

1 回答 1

3

这些方法不返回任何内容,也不初始化任何字段:只有局部变量。所以它们基本上是复杂的noops。

另外,您不应该遇到异常。捕获 IOException,只有当你真的可以在这个地方处理异常时。否则,让异常传播,或将其转换为 runeim 异常并抛出运行时异常。

于 2013-04-08T15:54:07.730 回答