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());
    }
}
发布了304 篇原创文章 · 获赞 74 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/ITlanyue/article/details/104569882