2

誰かがこれを行うのを手伝ってもらえますか?

デシリアライズできません。このプログラムを逆シリアル化するにはどうすればよいですか?

リスト項目

public static void main(String[] args) {
        contato acon [] = new contato[3];

        acon [0] = new contato();
        acon [0].setName("joyce");
        acon [0].setAddress("hileia  n° 587");
        acon [0].setFone("789-456");
        acon [1] = new contato();
        acon [1].setName("naldo");
        acon [1].setAddress("bairro da paz n°15821");
        acon [1].setFone("654-123");
        acon [2] = new contato();
        acon [2].setName("jessica");
        acon [2].setAddress("cidade nova n°15");
        acon [2].setFone("456-789");

        try {
            FileOutputStream fs = new FileOutputStream("contato.ser");
            ObjectOutputStream os = new ObjectOutputStream(fs);
            os.writeObject(acon);
            os.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
          try {
                FileInputStream fs = new FileInputStream("contato.ser");
                ObjectInputStream oi = new ObjectInputStream(fs);
                System.out.println(oi.readObject());

                oi.close();
                fs.close();


            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

このオブジェクトをデシリアライズすると、常にエラーが発生します。

public class contato implements Serializable {

    private String name;
    private String address;
    private String fone;

    public void setName(String name) {
        this.name = name;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void setFone(String fone) {
        this.fone = fone;
    }

    public String getName() {
        return name;
    }

    public String getAddress() {
        return address;
    }

    public String getFone() {
        return fone;
    }
4

1 に答える 1

0

「まったくエラーが発生していない」ことをお勧めします。表示されているのは、配列を印刷しようとした結果です。これはSystem.out.println(Object)を呼び出しcontato [].toString()、これはオーバーライドできない を呼び出すため、クラス名のようなもの[]とハッシュコードを出力します。これは予想されることです。シリアル化した配列の内容を見たい場合は、それを配列オブジェクトに逆シリアル化し、それを繰り返し処理し、要素を 1 つずつ出力する必要があります。

于 2013-06-24T06:39:02.783 に答える