Strim I/O Java boleh mensiri dan menyahsiri objek untuk penghantaran atau penyimpanan Langkah-langkah khusus adalah seperti berikut: membuat objek melaksanakan antara muka Serializable; gunakan ObjectInputStream untuk menyahsiri aliran bait ke dalam objek.
Java I/O Streaming Objek Bersiri
Pengenalan
Serialization ialah proses menukar objek kepada aliran bait supaya ia boleh dihantar melalui rangkaian atau peranti storan. Penyahserialisasian ialah proses terbalik, membina semula objek daripada aliran bait. Di Java, pensirilan dan penyahserikan dilakukan melalui aliran I/O.
Serializing Objects
Untuk mensirikan objek, kita perlu:
Serializable
. Serializable
接口。ObjectOutputStream
将对象写入到输出流中。// 序列化一个对象 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.ser")); oos.writeObject(object); oos.close();
反序列化对象
要反序列化一个对象,我们需要:
ObjectInputStream
将字节流反序列化成对象。// 反序列化一个对象 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.ser")); Object object = ois.readObject(); ois.close();
实战案例
让我们创建一个 Student 类,使其可序列化并演示序列化和反序列化过程:
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(); } } }
运行此代码将输出:1 John Doe
Gunakan ObjectOutputStream
untuk menulis objek ke strim output. rrreee
ObjectInputStream
untuk menyahsiri strim bait menjadi objek. rrreee🎜🎜Kes praktikal🎜🎜Mari kita buat kelas Pelajar, jadikan ia boleh bersiri dan tunjukkan proses bersiri dan penyahsirilan:🎜rrreee🎜Menjalankan kod ini akan mengeluarkan: 1 John Doe
, yang menunjukkan bahawa objek telah berjaya disiri dan dinyahsiri. 🎜Atas ialah kandungan terperinci Bagaimanakah aliran Java I/O mengendalikan objek bersiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!