Java序列化示例分享

书欣 Java经验 发布时间:2023-01-28 09:53:38 阅读数:20079 1
下文笔者讲述java序列化的示例分享,如下所示

序列化简介

序列化的功能:
    就是将对象转换为字节流
	然后将其保存到文件中或进行网络传输
反序列化的功能:
    将字节流转换为对象

序列化及反序列化示例

// 序列化-将对象转换为文件保存
public static void writeObject(Object obj, File file) throws IOException {
	try (FileOutputStream fos = new FileOutputStream(file);
		 ObjectOutputStream oos = new ObjectOutputStream(fos)) {
		oos.writeObject(obj);
		oos.flush();
	}
}

//反序列化--字节流转换为对象 
public static Object readObject(File file) throws IOException, ClassNotFoundException {
	Object result = null;
	try (FileInputStream fis = new FileInputStream(file);
		 ObjectInputStream ois = new ObjectInputStream(fis)) {
		result = ois.readObject();
	}
	return result;
}

POJO

Person.java
package com.java265.io.object;
 
import java.io.Serializable;
import java.math.BigDecimal;
 
public class Person implements Serializable {
    // optional, if missing, JVM will create it.
    // better declare as a version control.
    private static final long serialVersionUID = 1L;
 
    private String name;
    private int age;
    // dun save this field into file
    private transient BigDecimal salary;

    // getters, setters, toString, constructor 
}
注意事项:
    1.待序列化对象必须实现 Serializable接口,否则会产生相应的异常信息
      Exception in thread "main" java.io.NotSerializableException
	2.序列化需忽略的字段,需使用transient注解标注
    3.serialVersionUID的功能
	  serialVersionUID字段如果没有,JVM会自动创建
	  serialVersionUID字段的功能,类似于版本号的概念
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202301/16748730515543.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者