java序列化和反序列化
2019-05-06 12:01
459 查看
版权声明:zengxianglei博客 https://blog.csdn.net/zengxianglei/article/details/89879652
java序列化和反序列化
序列化:就是将java对象转化成字节序列的过程。比如:将对象(内存)序列化到磁盘。
反序列化:就是将字节序列转化成对象的过程。比如:从磁盘反序列化到内存。
序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传输)。这个过程称为序列化。通俗来说就是将数据结构或对象转换成二进制串的过程
反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程。也就是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程
先创建一个实体类,实现Serializable接口
public class Person implements Serializable { private static final long serialVersionUID = 8428798474641047929L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }
}
再创建一个序列化和反序列化的工具类
public class SerializationUtil { //.bin后缀代表二进制文件 private static String FILE_NAME = "D:/obj.bin"; /** * 序列化 */ public static void writeObject(Serializable s) { try { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_NAME)); oos.writeObject(s); oos.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 反序列化 */ public static Object readObject() { Object obj = null; try { ObjectInput input = new ObjectInputStream(new FileInputStream(FILE_NAME)); obj = input.readObject(); input.close(); } catch (Exception e) { e.printStackTrace(); } return obj; }
}
然后main方法测试
public class Main { public static void main(String[] args) { //序列化 Person person = new Person(); person.setName("混世魔王"); SerializationUtil.writeObject(person); Person p = (Person) SerializationUtil.readObject(); System.out.println("name = " + p.getName()); }
}
相关文章推荐
- 黑马程序员_Java对象的序列化和反序列化实践
- Java对象的序列化和反序列化
- java序列化和反序列化性能比较
- Java中的序列化和反序列化
- java之多线程之一/序列化和反序列化
- java文件传输基础:序列化和反序列化ObjectInputStream/ObjectOutputStream
- java序列化反序列化uid
- JAVA基础(一)序列化,反序列化,java的序列化
- Java中对象的序列化和反序列化方法
- Java对象的XML序列化和反序列化 - (5)
- java序列化和反序列化
- Java基础学习总结——Java对象的序列化和反序列化
- Java基础学习总结——Java对象的序列化和反序列化
- 0004-java对象的序列化和反序列化
- java 序列化和反序列化
- java序列化反序列化深入探究(转)
- Java序列化和反序列化小记
- Java序列化和反序列化
- java 的序列化和反序列化的问题