ObjectInputStream的使用方法及其注意事项
一、代码及笔记演示
package ioDemo.inputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /**** * 写入对象必须将对象序列化 *@author <a"283505495@qq.com">lxd</a> *@version 1.0 2017-3-18 下午3:39:41 *@fileName ObjectInputStreamDemo.java */ public class ObjectInputStreamDemo { public static void main(String[] args) throws Exception { ObjectOutputStream out=null; File file=new File("b.txt"); out=new ObjectOutputStream(new FileOutputStream(file)); List<Person>list=new ArrayList<Person>(); list.add(new Person("Tom", 22, "0002")); list.add(new Person("Jack", 22, "0003")); out.writeObject(list); ObjectInputStream in=null; in=new ObjectInputStream(new FileInputStream(file)); List<Person> res=(List<Person>) in.readObject(); for(Person p:res){ System.out.println(p); } } }
1、Person类:
package ioDemo.inputStream; import java.io.Serializable; public class Person implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String name; private int age; private String id; 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 getId() { return id; } public void setId(String id) { this.id = id; } public Person(String name, int age, String id) { super(); this.name = name; this.age = age; this.id = id; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", id=" + id + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } }
二、运行结果
三、总结:
1、ObjectInputStream writerObject对象的时候,不能直接添加,需要将此类实现序列化serializable。