如果希望永久保存这些对象,则可以将对象转为字节数据写入到硬盘上,这个过程称为对象序列化.
有ObjectOutputStream ,ObjectInputStream类,对象被序列化后会生成二进制数据保存在文件中,通过二进制数据还可以恢复数据这过程称为反序列化.
class Person implements Serializable{ private String id; private String name; private int age; public Person(String id,String name,int age){ super(); this.id=id; this.name=name; this.age=age; } public String getId(){ return id; } public String getName(){ return name; } public int getAge(){ return age; } } public class Example02 { public static void main(String[] args) throws Exception{ Person p=new Person("p1","张三",20); System.out.println("-------写入文件前---------"); System.out.println("Person对象的id为:"+p.getId()); System.out.println("Person对象的name为:"+p.getName()); System.out.println("Person对象的age为:"+p.getAge()); FileOutputStream fos=new FileOutputStream("d:/2345下载/1.txt"); ObjectOutputStream oos=new ObjectOutputStream(fos);//创建对象输出流对象用于处理留对象写入的数据 oos.writeObject(p); FileInputStream fis=new FileInputStream("d:/2345下载/1.txt"); ObjectInputStream ois=new ObjectInputStream(fis);//创建对象输入流并且从制定的输入流读出数据 Person p1=(Person)ois.readObject(); System.out.println("------从文件读取后-------"); System.out.println("Person对象的id为:"+p.getId()); System.out.println("Person对象的name为:"+p.getName()); System.out.println("Person对象的age为:"+p.getAge()); } }