🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 对象流指的是可以直接**把一个对象以流的形式**传输给其他的介质,比如硬盘。 一个对象以流的形式进行传输,叫做**序列化**。 该对象所对应的类,必须是实现Serializable接口 # 序列化一个对象 创建一个Hero对象,设置其名称为garen。 把该对象序列化到一个文件garen.lol。 然后再通过序列化把该文件转换为一个Hero对象 > 注:把一个对象序列化有一个前提是:这个对象的类,必须实现了Serializable接口 Hero.java: ``` package com.dodoke.util; import java.io.Serializable; public class Hero implements Serializable { // 表示这个类当前的版本,如果有了变化,比如新设计了属性,就应该修改这个版本号 private static final long serialVersionUID = 1L; public String name; public float hp; } ``` 测试类: ``` package com.dodoke.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class TestSteam12 { public static void main(String[] args) { // 创建一个Hero garen // 要把Hero对象直接保存在文件上,务必让Hero类实现Serializable接口 Hero h = new Hero(); h.name = "garen"; h.hp = 616; // 准备一个文件用于保存该对象 File f = new File("d:/garen.lol"); try ( // 创建对象输出流 FileOutputStream fos = new FileOutputStream(f); ObjectOutputStream oos = new ObjectOutputStream(fos); // 创建对象输入流 FileInputStream fis = new FileInputStream(f); ObjectInputStream ois = new ObjectInputStream(fis);) { oos.writeObject(h); Hero h2 = (Hero) ois.readObject(); System.out.println(h2.name); System.out.println(h2.hp); } catch (Exception e) { e.printStackTrace(); } } } ```