Java IO流之对象输入输出流

IO 对象输入输出流

    什么是对象? 对象指的就是java运行过程中产生的对象 如: new Date() , new String() 对象输入输出流 : 主要的作用是用于写入对象信息与读取对象信息。 对象信息 一旦写到文件上那么对象的信息就可以做到持久化了 对象的输出流: ObjectOutputStream 对象的输入流: ObjectInputStream 对象序列化 对象的寿命通常随着生成该对象的程序的终止而终止。 有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。 对象序列化: 对象的输出流将指定的对象写入到文件的过程,就是将对象序列化的过程 对象反序列化: 对象的输入流将指定序列化好的文件读出来的过程,就是对象反序列化的过程。 既然对象的输出流将对象写入到文件中称之为对象的序列化,所以必须要实现 Serializable接口 Serializable接口中没有任何方法。当一个类声明实现Serializable接口后, 表明该类可被序列化。 会为类生成一个序列化id号,是唯一与类对应的 代码示例: 创建实现了Serializable接口的类 package 对象输入输出流; ​ import java.io.Serializable; ​ public class User implements Serializable { ​    private String userName;    private int password; ​    public User(){ ​   }    public User(String userName, int password) {        this.password=password;        this.userName=userName;   } ​    public String getUserName() {        return userName;   } ​    public void setUserName(String userName) {        this.userName = userName;   } ​    public int getPassword() {        return password;   } ​    public void setPassword(int password) {        this.password = password;   } } ​ 对象序列化与反序列化 package 对象输入输出流; ​ import java.io.*; import java.sql.DatabaseMetaData; import java.util.Date; ​ public class Demo { ​    public static void main(String[] args) throws IOException, ClassNotFoundException { ​        /*          这里我们创建三个对象        */        Date date = new Date();        String s = new String("11");        User user = new User(); ​        //对象序列化     /*   FileOutputStream out = new FileOutputStream("F:/object.txt");        ObjectOutputStream objos = new ObjectOutputStream(out);            objos.writeObject(date);            objos.writeObject(s);            objos.writeObject(user);            objos.flush();            objos.close();*/ ​        //对象反序列化        FileInputStream in = new FileInputStream("F:/object .txt");        ObjectInputStream objin = new ObjectInputStream(in); ​        Date date1 = (Date)objin.readObject();        String s1 = (String)objin.readObject();        User user1 = (User)objin.readObject(); ​        System.out.println(date1);        System.out.println(s1);        System.out.println(user1);   } } ​
经验分享 程序员 微信小程序 职场和发展