Java I/O stream can serialize and deserialize objects for transmission or storage. The specific steps are as follows: make the object implement the Serializable interface; use ObjectOutputStream to serialize the object into the output stream; read from the input stream Get a byte stream; use ObjectInputStream to deserialize the byte stream into an object.
Java I/O Stream Processing Serialized Object
Introduction
Serialization is a The process of converting an object into a stream of bytes so that it can be transmitted or stored over a network or storage device. Deserialization is the reverse process, reconstructing an object from a stream of bytes. In Java, serialization and deserialization are done through I/O streams.
Serializing objects
To serialize an object, we need to:
Serializable
interface. ObjectOutputStream
to write objects to the output stream. // 序列化一个对象 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.ser")); oos.writeObject(object); oos.close();
Deserializing an object
To deserialize an object, we need to:
ObjectInputStream
to deserialize the byte stream into an object. // 反序列化一个对象 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.ser")); Object object = ois.readObject(); ois.close();
Practical case
Let us create a Student class, make it serializable and demonstrate the serialization and deserialization process:
import java.io.Serializable; public class Student implements Serializable { private int id; private String name; // 构造函数和 getter/setter 略... } public class Main { public static void main(String[] args) { // 创建一个 Student 对象 Student student = new Student(1, "John Doe"); // 序列化该对象 try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.ser"))) { oos.writeObject(student); } catch (IOException e) { e.printStackTrace(); } // 反序列化该对象 try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.ser"))) { Student deserializedStudent = (Student) ois.readObject(); System.out.println(deserializedStudent.getId() + " " + deserializedStudent.getName()); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } }
Running this code will output: 1 John Doe
, which indicates that the object was successfully serialized and deserialized.
The above is the detailed content of How do Java I/O streams handle serialized objects?. For more information, please follow other related articles on the PHP Chinese website!