标签:准备 ima port ali 技术 image top 不能 使用方法
序列化和反序列化的图示:
简单来讲,序列化就是将对象写入文件当中去
反序列化就是将对象从文件中读取出来
关于类
ObjectOutputStream
准备写入 的累:
import java.io.Serializable; public class Person implements Serializable { private String name; private int age; public Person(){ } @Override public String toString() { return "Person{" + "name=‘" + name + ‘\‘‘ + ", age=" + age + ‘}‘; } public Person(String name, int age) { this.name = name; this.age = age; } 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 class Demo66 { public static void main(String[] args) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\\Users\\quan\\Desktop\\练习\\src\\code\\haotusay.txt")); oos.writeObject(new Person("aa",22)); oos.close(); } }
public class Demo66 { public static void main(String[] args) throws IOException, ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:\\Users\\quan\\Desktop\\练习\\src\\code\\haotusay.txt")); Object o = ois.readObject(); ois.close(); System.out.println(o); Person person = (Person)o; System.out.println(person.getAge()+person.getName()); } //结果Person{name=‘aa‘, age=22} //22aa }
transient关键字====表示不能被序列化
InvalidClassException异常
练习序列化集合
/* 当我们新爱国再文件中保存多个对象的时候,可以把多个对象存储到一个集合中 对象集合进行序列化和反序列化 因为我们不能向一个文件当中写入多个对象 11定义一个存储person对象的集合arraylist集合 22集合加入对象 33创建序列化流ObjectOutputStream对象 44使用ObjectOutputStream对象的方法writeObject对象,对集合进行序列号 55创建一个反序列化objectinputStream对象 66使用方法readObject 读取保存的集合 77把Object 类型的集合转换为Arraylist 类型 88遍历集合输出 99释放资源 */
public class Demo66 { public static void main(String[] args) throws IOException, ClassNotFoundException { ArrayList<Person> list = new ArrayList<>(); list.add(new Person("AA",11)); list.add(new Person("BB",22)); list.add(new Person("CC",33)); ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\\Users\\quan\\Desktop\\练习\\src\\code\\haotusay.txt")); oos.writeObject(list); ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:\\Users\\quan\\Desktop\\练习\\src\\code\\haotusay.txt")); Object o = ois.readObject(); ArrayList<Person> arrayList = (ArrayList<Person>)o; for (Person person:arrayList) { System.out.println(person); } } } /*结果 Person{name=‘AA‘, age=11} Person{name=‘BB‘, age=22} Person{name=‘CC‘, age=33} */
标签:准备 ima port ali 技术 image top 不能 使用方法
原文地址:https://www.cnblogs.com/java-quan/p/13166844.html