我该如何反序列化?有人可以帮我这么做吗?我无法反序列化

时间:2013-06-24 02:20:08

标签: java serialization

有人可以帮我这么做吗?

我无法反序列化。 如何反序列化该程序?

列出项目

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;
    }

1 个答案:

答案 0 :(得分:0)

我建议你不要“犯错误”。你看到的是试图打印数组的结果。这会调用System.out.println(Object),它调用contato [].toString(),无法覆盖,因此它会打印类似[]的类名和哈希码。这是可以预料的。如果要查看序列化数组的内容,则必须将其反序列化为数组对象,对其进行迭代,然后逐个打印元素。