0
点赞
收藏
分享

微信扫一扫

对象序列化流和对象反序列化流


目录

​​一、对象序列化流​​

​​构造方法:​​

​​序列化对象的方法:​​

​​注意:​​

​​代码:​​

​​运行结果:​​

​​ 二、对象反序列化流​​

​​构造方法:​​

​​反序列化对象的方法:​​

​​代码:​​

​​运行结果:​​

一、对象序列化流

对象序列化流:ObjectOutputStream

将Java对象的原始数据类型和图形写入OutputStream。可以使用ObjectInputStream读取(重构)对象。可以通过使用流的文件来实现对象的持久存储。如果流是网络套接字流,则可以在另一个主机上或另一个进程中重构对象

对象序列化是把对象转换成字节序列的过程

构造方法:

ObjectOutputStream(OutputStream out):创建一个写入指定的OutputStream的OutputStream

序列化对象的方法:

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

注意:

一个对象要想被序列化,该对象所属的类必须实现Serializable接口

类的序列化由实现java.io.Serializable

Serializable是一个标记接口,实现该接口,不需要重写任何方法

代码:

public class Student implements Serializable {
private String name;
private int age;

public Student() {
}

public Student(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;
}

}

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;


public class ObjectOutputStreamDemo {
public static void main(String[] args) throws IOException {
//ObjectOutputStream(OutputStream out):创建一个写入指定OutputStream的ObjectOutputStream

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("fos.txt"));

//创建对象
Student s = new Student("林青霞",30);

//void writerObject(Object obj):将指定的对象写入ObjectOutputStream
oos.writeObject(s);

//释放资源
oos.close();
}
}

运行结果:

控制台:

对象序列化流和对象反序列化流_java

文件: 

对象序列化流和对象反序列化流_算法_02

 二、对象反序列化流

对象反序列化流:ObjectInputStream

ObjectInputStream反序列化先前使用ObjectOutputStream编写的原始数据和对象

对象反序列化流是把已经对象序列化的字节序列转换成对象的过程

构造方法:

ObjectInputStream(InputStream in):创建从指定的InputStream读取的ObjectInputStream

反序列化对象的方法:

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

代码:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class ObjectInputStreamDemo {
public static void main(String[] args) throws IOException, ClassNotFoundException {
//ObjectInputStream(InputStream in):创建从指定的InputStream读取的ObjectInputStream
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("fos.txt"));

//Object readObject():从ObjectInputStream读取一个对象
Object obj = ois.readObject();

Student s = (Student) obj;
System.out.println(s.getName() + "," + s.getAge());

//释放资源
ois.close();
}
}

运行结果:

对象序列化流和对象反序列化流_intellij-idea_03

 

举报

相关推荐

0 条评论