Java序列化

序列化是啥玩意?

Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。
将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。

使用场景有哪些?

在持久化对象时会用到对象序列化之外,当使用RMI(远程方法调用),或在网络中传递对象时,都会用到对象序列化

实现的方法?

1.implements java.io.Serializable
2.ObjectOutputStream 和 ObjectInputStream

案例

'''

    User user = new User("小红", "18988383", 19, "工程师");
    File file = new File("user.out");
    try {
        FileOutputStream fos = new FileOutputStream(file);
        ObjectOutputStream out = new ObjectOutputStream(fos);
        out.writeObject(user);
        fos.close();
        out.close();

        FileInputStream fileInputStream = new FileInputStream(file);
        ObjectInputStream inputStream = new ObjectInputStream(fileInputStream);
        User user2 = (User) inputStream.readObject();
        fileInputStream.close();
        inputStream.close();
        System.out.println("User:" + user2.toString());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

'''

【超链接】(http://www.jianshu.com/p/ff770511a097)

你可能感兴趣的:(Java序列化)