java-API之序列化和反序列化

概念

序列化:把对象转换为字节序列的过程称为序列化
序列化的用处:

  • 可以将对象的字节序列持久化地保存到硬盘上,通常存放在一个文件中
  • 我们大家都知道,网络上传输的数据都是二进制序列的形式,把对象序列化后方便进行网络传输

反序列化:把字节序列恢复为对象的过程称为对象的反序列化

案例

1.定义一个 Student类

// 定义一个 Student类
// Serializable 标志着这个文件是可以被序列化的
class Student implements Serializable {
	
	private static final long serialVersionUID = 1L;
	//一般序列化的都是属性
	String name = "张三";
	int age = 20;
	String addr = "成都";
	// 构造函数 创建对象用
	public Student(String name, int age, String addr) {
		this.name = name;
		this.age = age;
		this.addr = addr;
	}
	
	// 为了查看属性
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + ", addr=" + addr + "]";
	}
}

2.在测试文件的main方法中写入测试代码
2.1序列化

// 序列化
// 序列化的工具类ObjectOutputStream
try {
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("F:\\ioTest\\12.txt"));
			
    // 2、序列化
    Student s = new Student("jack",10,"北京");
    out.writeObject(s);  
    // 3、释放资源
    out.close();
			
    } catch (IOException e) {
        e.printStackTrace();
    }


2.2反序列化

// 反序列化
try {
    ObjectInputStream in = new ObjectInputStream(new FileInputStream("F:\\ioTest\\12.txt"));
    Object s = in.readObject();
        System.out.println(s);  // Student [name=jack, age=10, addr=北京]
    } catch (Exception e) {
        e.printStackTrace();
    }
posted @ 2020-03-07 07:58  技术狂-CYL  阅读(133)  评论(0)    收藏  举报