java反序列化详解

KLQ 2020-07-07 15:30:56 java常见问答 8149

之前给大家介绍了如何实现java序列化的内容,那么下面要接着给大家介绍的就是java反序列化的内容,一起来看看。

将二进制数据换回原对象,构造方法:ObjectInputStream(InputStream in),方法: Object readObject() 从 ObjectInputStream 读取对象

public class Serialization
{
    public static File file = null;
    public static void main(String[] args) throws Exception, IOException
    {
        file = new File("serialize.doc");
        //序列化到指定的文本
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
        oos.writeObject(new Book("Java Development", 45.3));
        oos.flush();
        oos.close();
        file = new File("serialize.doc");
        //反序列化到指定的文本
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
        Object obj = ois.readObject();
        Book book = (Book) obj;
        System.out.println("\n By using the byte stream serialization operation, " +
            "we can see the following information:\n" + book);
        ois.close();
    }
}

延伸阅读:

无序列化

类某些属性不需要序列化,以上序列化和反序列化实现了的对象序列化,但是能够发现,操作的时候是将整个对象的所有属性序列化,那么transient关键字可以将某些内容不需要保存,就可以通过transient关键字来定义:private transient String title;此时title属性无法被序列化

java反序列化的一些内容就给你介绍到这里了,更多java常见问题及解决方法,请继续关注奇Q工具网来进行了解吧。

推荐阅读:

什么是java序列化?java为什么需要序列化?

二叉树的序列化与反序列化(代码实现和思路)