序列化流与反序列化流
Posted awdsjk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化流与反序列化流相关的知识,希望对你有一定的参考价值。
序列化流:ObjectOutputStream
反序列化流:ObjectInputStream
序列化的前提是要序列化的时候必须实现Serializable接口
静态不能序列化,因为静态不属于对象
package com.oracle.demo02; import java.io.Serializable; public class Person implements Serializable /** * */ private static final long serialVersionUID = 1L; //不想被序列化,所以加上transient关键字 private transient String name; //不想被序列化,也可以加上静态修饰static private static int age; public Person(String name, int age) super(); this.name = name; this.age = age; public Person() super(); 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; @Override public String toString() return "Person [name=" + name + ", age=" + age + "]";
package com.oracle.demo02; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class Demo01 public static void main(String[] args) throws IOException, ClassNotFoundException write(); public static void write() throws IOException //明确目的地(将一个对象写到文件里面去 先写后读) FileOutputStream fos=new FileOutputStream("D:\\java\\person.txt"); //创建对象 Person p=new Person("zhaoyun",666); //创建序列化流 ObjectOutputStream oos=new ObjectOutputStream(fos); //将person对象写入文件中 oos.writeObject(p); //释放资源 oos.close();
package com.oracle.demo02; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class Demo01 public static void main(String[] args) throws IOException, ClassNotFoundException read(); //反序列化的方法 public static void read() throws ClassNotFoundException, IOException //明确数据源(将一个对象写到文件里面去 先读后写) FileInputStream fis=new FileInputStream("D:\\java\\person.txt"); //创建反序列化流 ObjectInputStream ois=new ObjectInputStream(fis); //将文件中的对象读到person对象中 Person p=(Person)ois.readObject(); System.out.println(p); //释放资源 ois.close();
不想被序列化,也可以加上静态修饰static
不想被序列化,所以加上transient关键字
以上是关于序列化流与反序列化流的主要内容,如果未能解决你的问题,请参考以下文章