Java IO 对象流
对象流指的是可以直接把一个对象以流的形式传输给其他的介质,比如硬盘
一个对象以流的形式进行传输,叫做序列化。 该对象所对应的类,必须是实现Serializable接口
序列化一个对象
创建一个Hero对象,设置其名称为garen。
把该对象序列化到一个文件garen.lol。
然后再通过序列化把该文件转换为一个Hero对象
注:把一个对象序列化有一个前提是:这个对象的类,必须实现了Serializable接口
package JavaIOTest;
import java.io.Serializable;
public class Hero implements Serializable {
//表示这个类当前的版本,如果有了变化,比如新设计了属性,就应该修改这个版本号
private static final long serialVersionUID = 1L;
public String name;
public float hp;
}
package JavaIOTest;
import java.io.*;
public class ObjectStreamTest {
public static void main(String[] args) {
//创建一个Hero对象 garen
Hero garen = new Hero();
garen.name = "garen";
garen.hp = 616;
//准备一个文件用于保存该对象
File file = new File("d:/xyz/z/zzz/zzzz/garen.lol");
try(
//创建对象输出流
FileOutputStream fileOutputStream = new FileOutputStream(file);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
//创建对象输入流
FileInputStream fileInputStream = new FileInputStream(file);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream)
)
{
objectOutputStream.writeObject(garen);
Hero h = (Hero) objectInputStream.readObject();
System.out.println(h.name);
System.out.println(h.hp);
}catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}