0

こんにちは、Javaでファイル内のオブジェクトを読み書きするのを手伝ってくれる人はいますか?

これは私が使用するコードです。これにより、この例外が発生します: java.io.NotSerializableException 私が使用するコードは次のとおりです。

public void zapisDat() {
    sez = new SeznamLodi(seznamLodiPC, seznamLodiUser, seznamLodiZasahuHrac, seznamLodiZasahuPC);
    try {
        ObjectOutput out = new ObjectOutputStream(
                new FileOutputStream("mujseznam.dat"));
        out.writeObject(sez);
        out.close();             // a je to. Jednoduché, že?
    } catch (IOException e) {
        System.out.println("Chyba při zápisu souboru : " + e);
    }
}

public void nacteniDat() {
    try {
        // Načtení ze souboru
        File file = new File("mujseznam.dat");
        try (ObjectInputStream in = new ObjectInputStream(
                new FileInputStream(file))) {
            sez = (SeznamLodi) in.readObject();
        }
    } catch (ClassNotFoundException e) {
        System.out.println("Nemohu najít definici třídy: " + e);
    } catch (IOException e) {
        System.out.println("Chyba při čtení souboru : " + e);
    }
}

助けてくれてありがとう

4

6 に答える 6

0

オブジェクトを ObjectOututStream に書き込むには、シリアル化を正しくサポートする必要があります。

シリアライゼーションのチュートリアルを読んで、クラスSeznamLodiを要件に準拠させてください。

于 2013-10-31T11:08:13.513 に答える
0

エラーが言うように、クラス (オブジェクト sez 用) は Serializable インターフェイスを実装していません。それがどのように機能するかについては、 Java の論文を参照してください。

于 2013-10-31T11:08:14.220 に答える
0

オブジェクトは、ファイルに書き込まれる Serializable インターフェイスを実装している必要があります。具体的には java.io.serializable を実装してください。

import java.io.serializable

class SerializationBox implements Serializable {
....
于 2013-10-31T11:09:12.907 に答える
0

このクラスをシリアライズ可能にする

class SeznamLodi implements java.io.Serializeable
于 2013-10-31T11:09:36.243 に答える
0

SeznamLodi独自の場合はSerializable

  public class SeznamLodi implements Serializable {

  }

シリアライゼーション#Javaについて読んでください。

于 2013-10-31T11:09:53.183 に答える