使用Java序列化把对象存储到文件中去,再从文件中读取出来;
此时,我们使用ObjectOutputStream和ObjectInputStream来进行对象的读取;
使用ObjectOutputStream对象的writeObject()方法来进行对象的写入;
使用ObjectInputStream对象的readObject()方法来读取对象。
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import junit.framework.TestCase;
- /**
- * 使用Java序列化把对象存储到文件中,再从文件中读出来 注意读取的时候,读取数据的顺序一定要和存放数据的顺序保持一致
- *
- * @author Champion Wong
- *
- */
- public class Test08 extends TestCase {
- public void test() {
- // 创建一个User对象
- User user = new User();
- user.setId(1);
- user.setName("Mr XP.Wang");
- // 创建一个List对象
- List<String> list = new ArrayList<String>();
- list.add("My name");
- list.add(" is");
- list.add(" Mr XP.Wang");
- try {
- ObjectOutputStream os = new ObjectOutputStream(
- new FileOutputStream("C:/wxp.txt"));
- os.writeObject(user);// 将User对象写进文件
- os.writeObject(list);// 将List列表写进文件
- os.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- ObjectInputStream is = new ObjectInputStream(new FileInputStream(
- "C:/wxp.txt"));
- User temp = (User) is.readObject();// 从流中读取User的数据
- System.out.println(temp.getId());
- System.out.println(temp.getName());
- List tempList = (List) is.readObject();// 从流中读取List的数据
- for (Iterator iterator = tempList.iterator(); iterator.hasNext();) {
- System.out.print(iterator.next());
- }
- is.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- }
- }
- class User implements Serializable {
- private int id;
- private String name;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }