除了保存和/或加载数据外,它还能完成所需的一切。我假设问题是加载,即使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());
}
}
答案 0 :(得分:3)
这些方法不返回任何内容,也不初始化任何字段:只有局部变量。所以它们基本上是复杂的noops。
另外,你不应该使用cath Exception。仅当您可以在此处真正处理异常时才捕获IOException。其他方面,让异常传播,或将其转换为runeim异常并抛出运行时异常。