反序列化对象

  1. /**
  2. * ObjectInputStream
  3. * 反序列化:对象输入流
  4. *
  5. */
  6. @Test
  7. public void demo1() throws IOException,ClassNotFoundException {
  8. ObjectInputStream ois = new ObjectInputStream(new FileInputStream("other\\person1.txt"));
  9. Person p1 = (Person) ois.readObject();
  10. Person p2 = (Person) ois.readObject();
  11. //Person p3 = (Person) ois.readObject(); //当文件读取到了末尾时出现EOFException
  12. System.out.println(p1);
  13. System.out.println(p2);
  14. ois.close();
  15. }

EOFException: end off file ,文件结束

  1. Person{name='张三', age=23}
  2. Person{name='李四', age=24}

反序列化对象集合

    @Test
    public void demo2() throws IOException, ClassNotFoundException {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("other\\person_list.txt"));
        ArrayList<Person> list = (ArrayList<Person>) ois.readObject();        //将集合对象一次读取

        for (Person person : list) {
            System.out.println(person);
        }

        ois.close();
    }
Person{name='张三', age=23}
Person{name='李四', age=24}
Person{name='王五', age=25}
Person{name='赵六', age=26}