博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列化与反序列化
阅读量:4181 次
发布时间:2019-05-26

本文共 2280 字,大约阅读时间需要 7 分钟。

Java
序列化是指把
Java
对象转换为字节序列的过程,
Java
反序列化是指把字节序列恢复为
Java
对象的过
程。通过徐序列化和反序列化实现网络传输、本地存储的目的。

 

Serializable
实现
Java
序列化

编写项目时,自己创建序列化和反序列化工具类:

import java.io.*;/** *文件读写的工具类:方法要静态 */public class IOUtil {    /**     * 从指定文件中读数据     * @param fileName     * @return     * @throws IOException     */    public static Object readFile(String fileName) throws IOException {        FileInputStream fileInputStream = new FileInputStream(fileName);        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);        Object o = null;        try {            o = objectInputStream.readObject();        } catch (ClassNotFoundException e) {            e.printStackTrace();        }        return o;    }    /**     * 写入数据到指定文件     */    public static void writeFile(Object obj,String fileName) throws IOException {        FileOutputStream fileOutputStream = new FileOutputStream(fileName);        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);        objectOutputStream.writeObject(obj);    }}
实现部分字段序列化的方式:
1、使用
transient
修饰符
修改实体类,将实体类中不想序列化的属性添加
transient
修饰词。
public class Student implements Externalizable {        private String stuNum;        private transient String stuName;        private transient List
teacherList; ......
2、使用
static
修饰符
static
修饰符修饰的属性也不会参与序列化和反序列化。
修改实体类,将实体类中不想序列化的属性添加
static
修饰词。
public class Student implements Externalizable {            private String stuNum;            private static String stuName;            private List
teacherList; ......
3、默认方法
writeObject
readObject
(修改实体类,implements
Serializable,并添加两个方法
public class Student implements Serializable {    private String stuNum;    private String stuName;    private List
teacherList;private void writeObject(ObjectOutputStream objOut) throws IOException { System.out.println("writeObject-----------"); objOut.writeObject(stuNum); objOut.writeObject(stuName); } private void readObject(ObjectInputStream objIn) throws IOException, ClassNotFoundException { System.out.println("readObject-----------"); stuNum = (String) objIn.readObject(); stuName = (String) objIn.readObject(); }

 

4、Externalizable接口----可实现部分属性的序列化(不常用)

转载地址:http://rhlai.baihongyu.com/

你可能感兴趣的文章
将指定字符串按指定长度进行剪切
查看>>
《大道至简》读书笔记 第1篇
查看>>
Object-c 语法 - NSObject常用方法和反射
查看>>
QTP参数化
查看>>
需求分析&用例编写
查看>>
SAP 播放语言 转载自http://www.cnblogs.com/sapSB/p/6043129.html
查看>>
关于hashcode 和 equals 的内容总结
查看>>
22-强迫症序列
查看>>
springboot中的常用注解
查看>>
Java中的集合框架
查看>>
linux ftp服务器搭建
查看>>
python xml转excle
查看>>
设计模式之抽象工厂模式
查看>>
步进电机与伺服电机
查看>>
自适应模糊控制——间接自适应模糊控制
查看>>
优美的函数
查看>>
Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)
查看>>
leetcode--shell
查看>>
Shell简介
查看>>
python 函数赋值
查看>>