序列化,反序列化
package io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /* * * 序列化的本质就是将当前程序中所有正在运行的对象的状态 * 保存到硬盘上, * * 反序列,将硬盘上保存的对象状态,还原回程序中 * * * 如何序列化呢: * 1.保证要存储的对象都已经实现序列化接口 * 2.将对象使用ObjectOutputStream保存到文件中,序列化 * 3.反序列化,使用ObjectInputStream读取内存 */ public class Ser { public static void main(String[] args) { Users u = new Users(); u.setUage(23); u.setUid(1); u.setUname("张三"); Users u1 = new Users(); u1.setUage(23); u1.setUid(2); u1.setUname("李正泉"); try { //序列化 FileOutputStream fos = new FileOutputStream("c://1.sav"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(u); oos.writeObject(u1); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { //反序列化 FileInputStream fis = new FileInputStream("c:/1.sav"); ObjectInputStream ois = new ObjectInputStream(fis); Users u2 = (Users)ois.readObject(); System.out.println(u2); Users u3 = (Users)ois.readObject(); System.out.println(u3); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }