java序列化与反序列化,将集合写入文本同时一个一个读出来

来源:互联网 发布:网页游戏的源码 编辑:程序博客网 时间:2024/05/29 08:05
package com.zdy.test;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.List;public class Test1 {    private static Person person;    public static void main(String[] args) {        List<Person> list = new ArrayList<Person>();        for (int i = 0; i < 10; i++) {            person = new Person();            person.setAge("2" + i);            person.setName("我是谁" + i);            list.add(person);        }        writeObjectToFile(list);        List<Person> lists = readObjectFromFile();        System.out.println(lists.get(0));        System.out.println(lists.size());    }    public static <T> void writeObjectToFile(List<T> list) {        File file = new File("test.dat");        FileOutputStream out;        try {            out = new FileOutputStream(file);            ObjectOutputStream objOut = new ObjectOutputStream(out);            objOut.writeObject(list);            objOut.flush();            objOut.close();        } catch (IOException e) {            e.printStackTrace();        }    }    @SuppressWarnings("unchecked")    public static <T> List<T> readObjectFromFile() {        File file = new File("test.dat");        FileInputStream in;        List<T> object = null;        try {            in = new FileInputStream(file);            ObjectInputStream objIn = new ObjectInputStream(in);            object = (List<T>) objIn.readObject();            objIn.close();        } catch (IOException e) {            e.printStackTrace();        } catch (ClassNotFoundException e) {            e.printStackTrace();        }        return (List<T>) object;    }}

package com.zdy.test;

import java.io.Serializable;

public class Person implements Serializable {
private String name;
private String age;

public String getName() {    return name;}public void setName(String name) {    this.name = name;}public String getAge() {    return age;}public void setAge(String age) {    this.age = age;}@Overridepublic String toString() {    return "Person [name=" + name + ", age=" + age + "]";}

}
“`

0 0