对象流指的是可以直接把一个对象以流的形式传输给其他的介质,比如硬盘
一个对象以流的形式进行传输,叫做序列化。 该对象所对应的类,必须是实现Serializable接口
序列化
创建一个animal对象,设置为cat。
把该对象序列化到一个文件cat.anm。
然后再通过序列化把该文件转换为一个cat对象
注:把一个对象序列化有一个前提是:这个对象的类,必须实现了Serializable接口
package stream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import charactor.animal;
public class TestStream {
public static void main(String[] args) {
//创建一个animal cat
animal h = new animal();
h.name = "cat";
h.age = 6;
//准备一个文件用于保存该对象
File f =new File("d:/cat.anm");
try(
//创建对象输出流
FileOutputStream fos = new FileOutputStream(f);
ObjectOutputStream oos =new ObjectOutputStream(fos);
//创建对象输入流
FileInputStream fis = new FileInputStream(f);
ObjectInputStream ois =new ObjectInputStream(fis);
) {
oos.writeObject(h);
animal h2 = (animal) ois.readObject();
System.out.println(h2.name);
System.out.println(h2.hp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package charactor;
import java.io.Serializable;
public class animal implements Serializable {
//表示这个类当前的版本,如果有了变化,比如新设计了属性,就应该修改这个属性
private static final string Class = "cat";
public String name;
public int age;
}