一、代码及笔记演示



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;
}


}


二、运行结果

ObjectInputStream的使用方法及其注意事项_对象序列化

三、总结:

1、ObjectInputStream writerObject对象的时候,不能直接添加,需要将此类实现序列化serializable。

ObjectInputStream的使用方法及其注意事项_ide_02