这里我来介绍如何把对象也持久化
1、ObjectInputStream :对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
2、ObjectOutputStream:。通过在流中使用文件可以实现对象的持久存储,只能将支持 java.io.Serializable 接口的对象写入流中
接下来看我们如何来编写这样的程序:
1、新建一个被系列化的对象:PersistenceObject.java
package com.mars.object; import java.io.Serializable; public class PersistenceObject implements Serializable{ private static final long serialVersionUID = 1L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
2、创建一个类来专门的设置文件路径:FileLocal.java
package com.mars.object; public final class FileLocal { protected static final String FILELOCAL="D:/object.tmp"; }
3、接下来建立一个类来持久化这个对象:OutPersistenceObject .java
package com.mars.object; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class OutPersistenceObject { public static void outObject(){ FileOutputStream fos = null; ObjectOutputStream oos = null; try { fos = new FileOutputStream(FileLocal.FILELOCAL);//保存要持久的介质 } catch (FileNotFoundException e) { e.printStackTrace(); } if(fos!=null){ try { oos=new ObjectOutputStream(fos); oos.writeObject(com.mars.object.PersistenceObject.class.newInstance());//把PersistenceObject类持久化 } catch (IOException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }finally{ if(oos!=null){ try { oos.close(); } catch (IOException e) { e.printStackTrace(); }finally{ oos=null; } } if(fos!=null){ try { fos.close(); } catch (IOException e) { e.printStackTrace(); }finally{ fos=null; } } } } } public static void main(String[] args) { System.out.println("开始存入D:/object.tmp....."); OutPersistenceObject.outObject(); System.out.println("持久化完成...."); } }
4、如何把这个持久化的对象从存储介质中读取出来:InPersistenceObject .java
package com.mars.object; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.ObjectInputStream; public class InPersistenceObject { public static Object getObject(String src){ FileInputStream fis = null; ObjectInputStream ois = null; Object o = null; try { fis = new FileInputStream(src); } catch (FileNotFoundException e) { e.printStackTrace(); } try { ois = new ObjectInputStream(fis); o = ois.readObject(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally{ if(ois!=null){ try { ois.close(); } catch (IOException e) { e.printStackTrace(); }finally{ ois=null; } } if(fis!=null){ try { fis.close(); } catch (IOException e) { e.printStackTrace(); }finally{ fis=null; } } } return o; } public static void main(String[] args) { PersistenceObject p=(PersistenceObject)InPersistenceObject.getObject(FileLocal.FILELOCAL); p.setName("hello ! I'm mars "); String str = p.getName(); System.out.println(str); } }
end....