美文网首页
序列化和反序列化对象

序列化和反序列化对象

作者: 你缺少想象力 | 来源:发表于2019-01-21 11:57 被阅读1次

    被序列化的对象需要实现Serializable接口
    例子:

    class S implements Serializable {
            int a;
            int b;
    
            public S(int a, int b) {
                this.a = a;
                this.b = b;
            }
    
            public int getA() {
                return a;
            }
    
            public void setA(int a) {
                this.a = a;
            }
    
            public int getB() {
                return b;
            }
    
            public void setB(int b) {
                this.b = b;
            }
    
            @Override
            public String toString() {
                return "S{" +
                        "a=" + a +
                        ", b=" + b +
                        '}';
            }
        }
    

    序列化和反序列化操作

    public static void main(String[] args) {
            // 序列化
            try {
                S s = new S(10, 20);
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt"));
                oos.writeObject(s);
                oos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            // 反序列化
            try {
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt"));
                S s = (S) ois.readObject();
                ois.close();
                System.out.println(s.toString());
            } catch (IOException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
    
        }
    

    结果:

    S{a=10, b=20}
    

    相关文章

      网友评论

          本文标题:序列化和反序列化对象

          本文链接:https://www.haomeiwen.com/subject/hxfcjqtx.html