0
public Map<String, BarrackData> barrack = new HashMap<String, BarrackData>();
SavingData.save(barrack, "barrack.bin"); // save
barrack = (Map<String, BarrackData>)SavingData.load("barrack.bin"); // load
// BarrackData contains 3 int's and 1 String.

public static void save(Object obj, String path) throws Exception {
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));
    oos.writeObject(obj);
    oos.flush();
    oos.close();
}

public static Object load(String path) throws Exception {
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));
    Object result = ois.readObject();
    ois.close();
    return result;
}

HashMap を保存/ロードするにはどうすればよいですか。
私はこのメソッドを使用していますが、問題があるようです。
barrack.bin には、私が理解できないいくつかのエラーが含まれています。
(java.io.NotSerializableException java.io.ObjectStreamException IOExceptionpressureExceptionst)

4

1 に答える 1

1

あなたのクラスBarrackDataは を実装していないようjava.io.Serializableです。次のようになります。

public class BarrackData implements Serializable {
   ...
于 2012-10-23T20:28:07.990 に答える