Java核心API之对象流的使用介绍
1、对象流的基本概念 存在既有意义,对象流可以帮助我们将内存中的Java对象保存到本地磁盘,即字节序列。这种将Java对象转化为一个字节序列,就叫做对象序列化。反之,将一个序列文件转化为Java对象,这个过程称作反序列化。 听起来对象流很高大上,其实很简单。在Java程序运行过程中,Java对象的属性值都存储在内存,程序结束后释放内存,一股青烟后,任何数据都会消失,为了将内存中的Java对象的属性状态保存到本地磁盘,于是对象流就应运而生。

3、对象流之ObjectOutputStream对象序列化 ObjectOutputStream可以将对象进行序列姝耒匝揎化的输出流。示例代码如下://ObjectOutputStreamDemo类代码 public class ObjectOutputStreamDemo{/* * void writeObject() * 将特定的对象转化为字节序列 */ @Test public void testOOS() throws Exception{ FileOutputStream fos = new FileOutputStream("boy.obj"); //构造方法ObjectOutputSteam(OutputStream out) ObjectOutputStream oos = new ObjectOutputStream(fos); Person boy = new Person("Peter",12,"男"); oos.writeObject(boy); System.out.println("完成序列化"); oos.close(); }} //Java对象类代码public class Person implements Serializable { private static final long serialVersionUID = 1L; private String name; private int age; private String gender; public Person() { super(); } public Person(String name, int age, String gender) { super(); this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "name=" + name + ", age=" + age + ", gender=" + gender ; }}注意:可以将上述代码片段粘贴到本地,运行测试,供大家参考,如果有问题可以联系小编。

4、对象流之ObjectInputStream对象反序列化 ObjectInputStream可以将序列化转换成对象。示例代码如下://ObjectInputStreamDemo类public class ObjectInputStreamDemo{/* * Object readObject(); * 将对象序列化转换为对象 */ @Test public void testOIS() throws Exception{ FileInputStream fis = new FileInputStream("boy.obj"); ObjectInputStream ois = new ObjectInputStream(fis); //Object readObject()读取二进制文件转换成对象 Person boy = (Person)ois.readObject(); System.out.println(boy); System.out.println("反序列化操作完毕"); ois.close();}}
