1

シリアル化されたファイルを開いて出力することになっている学校の課題に取り組んでいます。何も印刷されない理由がわかりません。ループがまったく機能していないようです。何か案は?

public ReadFile()
{
    try
    {
        fis = new FileInputStream("Clients.ser");
        ois = new ObjectInputStream(fis);
    }
    catch(Exception e) {}
    try
    {
        while(true)
        {
            //cast according to class Record
            r = (Record) ois.readObject();
            System.out.print(r.account + r.firstName + r.lastName + r.balance);
        }
    }
    catch(IOException ioe) { ioe.printStackTrace(); }
    catch(ClassNotFoundException cnfe) {}
}

編集

にスタックトレースを追加するIOExceptionと、次のように返されます。

Record; local class incompatible: stream classdesc serialVersionUID = 5124020354301486787, local class serialVersionUID = -8881068308941519505

4

1 に答える 1

3

このメッセージは、逆シリアル化しようとしているクラスが、指定したクラスと同じではないことを意味します。

Recordクラスは、シリアル化した人から与えられましたか、それとも自分で作成しましたか?

于 2013-03-12T22:54:16.580 に答える