Java集合序列化

来源:互联网 发布:ck手表怎么样知乎 编辑:程序博客网 时间:2024/05/14 19:23

首先是序列化一个类

package Xuliehua;import java.io.Serializable;public class Person implements Serializable{    private String name;    private int age;    //属性可再自行添加     public Person(){}    public Person(String name,int age){        this.name = name;        this.age = age;    }    public String getName(){        return this.name;    }    public void setName(String name){        this.name = name;    }    public int getAge(){        return this.age;    }    public void setAge(int age){        this.age = age;    }}

序列化过程

package Xuliehua;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 TestPerson  {   public static void main(String[] args)   {     List<Person> persons= new ArrayList<Person>();   for(int i=0;i<10;i++)  {      Person per =new Person("A",i);      persons.add(per);  }  File file = new File("D:/Person.txt");    try    {     file.createNewFile();    }    catch(IOException e)    {     e.printStackTrace();    }    try    {     // 集合序列化      FileOutputStream fos = new FileOutputStream(file);     ObjectOutputStream oos = new ObjectOutputStream(fos);     oos.writeObject(persons);   oos.flush();     oos.close();     fos.close();     // 集合反序列化      FileInputStream fis = new FileInputStream(file);     ObjectInputStream ois = new ObjectInputStream(fis);     List<Person> p = (List<Person>) ois.readObject();    for(int j=0;j<p.size();j++)   {       System.out.println("name = " + p.get(j).getName());       System.out.println("age= " + p.get(j).getAge());    }    ois.close();     fis.close();    }    catch(ClassNotFoundException e)    {     e.printStackTrace();    }    catch (IOException e)    {     e.printStackTrace();    }                }  }

运行结果如图:
这里写图片描述

0 0
原创粉丝点击