• Java第三十四天,IO操作(续集),非基本对象的读写——序列化流


    一、序列化与反序列化

    以前在对文件的操作过程当中,读写的对象都是最基本的数据类型,即非引用数据类型。那么如果我们对饮用数据类型(即对象类型)数据进行读写时,应该如何做呢?这就用到了序列化与反序列化。

    需要注意的是:

    1.任何利用序列化流读写的对象,都必须实现 Serializable 接口。该接口并没有任何抽象方法,只是单纯的起到了标志的作用

    2.反序列化流使用时,必须存在用到的

    二、ObjectOutputStream

    该类是序列化输出流类,用于写数据

    1.构造方法

    ObjectOutputStream(OutputStream out)

    2.常用方法

    void writeObject(Object obj) ===> 将指定的对象写入ObjectOutputStream

    3.具体使用

    对象类:

    import java.io.Serializable;
    
    public class Student implements Serializable {
        private int age;
        private String depart;
    
        Student(int age, String depart){
            this.age = age;
            this.depart = depart;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getDepart() {
            return depart;
        }
    
        public void setDepart(String depart) {
            this.depart = depart;
        }
    }
    

    应用类:

    import java.io.*;
    
    public class MyObject {
        public static void main(String[] args) throws IOException {
            Student student = new Student(20,"软件技术");
            ObjectOutputStream file = new ObjectOutputStream(new FileOutputStream("F:\object.txt"));
            file.writeObject(student);
            file.close();
        }
    }

    三、ObjectInputStream

    该类是反序列化输入流,用于读取数据

    1.构造方法

    ObjectInputStream(InputStream in)

    2.常用方法

    Object readObject() ===> 从ObjectInputStream读取一个对象

    3.使用方法

    import java.io.*;
    
    public class MyObject {
        public static void main(String[] args) throws IOException, ClassNotFoundException {
       
            ObjectInputStream file = new ObjectInputStream(new FileInputStream("F:\object.txt"));
            Object object = file.readObject();
            file.close();
            Student student = (Student)object;
            System.out.println(student.getAge() + " " + student.getDepart());
        }
    }
  • 相关阅读:
    如何设置项目encoding为utf-8
    如何使用Navicat恢复数据库脚本
    如何使用Navicat备份数据库脚本
    表单编辑组件使用指南
    Maven如何打包本地依赖包
    怎么替换jar包里面的文件?
    如何开始创建第一个基于Spring MVC的Controller
    怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
    如何使用Eclipse调试framework
    windows下安装oracle,sqlplus连接启动oracle(oracle 主机字符串输入是什么)
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700441.html
Copyright © 2020-2023  润新知