当前位置 : 主页 > 编程语言 > java >

Java 序列化基础知识

来源:互联网 收集:自由互联 发布时间:2022-06-30
序列化反序列化概述 什么是序列化? 序列化,是将对象写入到 IO 流中 什么是反序列化? 从 IO 流中恢复对象。 有什么用? 序列化机制允许将实现序列化接口的Java对象转换为字节序列


序列化反序列化概述


什么是序列化?

序列化,是将对象写入到 IO 流中

什么是反序列化?

从 IO 流中恢复对象。

有什么用?

序列化机制允许将实现序列化接口的Java对象转换为字节序列。这些字节序列化可以保存到磁盘上,通过网络传输,以达到恢复到原来的对象的目的。

怎么用?

在远程调用场景 RMI,RPC 都是经常使用,使得相关接口调用实现序列化接口。


如何序列化,反序列化


序列化的步骤:

创建一个输出流 ObjectOutPutStream

调用 ObjectOutPutStream对象的 writeObject 输出可序列化对象。


反序列化步骤:

创建 ObjectInputStream 对象,然后调用ObjectInputStream的 readObject 方法读取对象。


序列化和反序列化代码如下:

package JavaBase.serializable;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class Person implements Serializable {
private String name;

private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

/**
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
}
}

public class WriteObject {

public static void main(String[] args) {
try {
// 序列化步骤,新建一个 ObjectOutputStream 镀锡
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.txt"));
Person person = new Person("xiaoming", 19);
// 序列化 写入对象
oos.writeObject(person);

// 反序列化 新建一个ObjectInputStream
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.txt"));
// 反序列化 读取
Person per = (Person) ois.readObject();

System.out.println(per);

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



Java 序列化基础知识_java

Java 序列化基础知识_java_02



关注我们,了解更多


【文章出处:香港站群多ip服务器 http://www.558idc.com/hkzq.html提供,感恩】
上一篇:Java8之Stream之List转Map有哪些坑
下一篇:没有了
网友评论