Lớp ObjectInputStream trong java được sử dụng để đọc các đối tượng và dữ liệu nguyên thủy mà được ghi bằng việc sử dụng lớp ObjectOutputStream.
Khai báo của lớp ObjectInputStream
Dưới đây là khi báo của lớp Java.io.ObjectInputStream :
public class ObjectInputStream extends InputStream implements ObjectInput, ObjectStreamConstants
Nội dung chính
Constructor của lớp ObjectInputStream
Constructor | Mô tả |
---|---|
public ObjectInputStream(InputStream in) | Tạo ra một ObjectInputStream đọc từ InputStream đã chỉ định. |
Các phương thức của lớp ObjectInputStream
Phương thức | Mô tả |
---|---|
public final Object readObject() | Đọc một đối tượng từ input stream. |
public void close() | Đóng ObjectInputStream hiện tại. |
Ví dụ về lớp ObjectInputStream trong java
Trong ví dụ này, chúng ta sẽ tuần tự hóa đối tượng của lớp Student. Phương thức writeObject() của lớp ObjectOutputStream cung cấp chức năng để tuần tự hóa đối tượng. Chương trình dưới đây sẽ lưu trạng thái của đối tượng trong tệp có tên testout.txt.
Tạo lớp Student.java
import java.io.Serializable; public class Student implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; private String address; private int age; public void Studet() {} public Student(int id, String name, String address, int age) { super(); this.id = id; this.name = name; this.address = address; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { return "Student@[id=" + id + " , name=" + name + ", " + "address= " + address + ",age =" + age+ "]"; } }
File: ObjectInputStreamExample.java
import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; public class ObjectInputStreamExample { public static void main(String[] args) throws IOException { ObjectInputStream ois = null; try { ois = new ObjectInputStream(new FileInputStream("D:\\testout.txt")); // read student Student student = (Student) ois.readObject(); // show student System.out.println(student.toString()); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } finally { ois.close(); } } }
Giả sử file testout.txt là output của ví dụ trong bài lớp ObjectOutputStream trong java có nội dung như sau:
Output:
Student@[id=1 , name=Tran Hao Phong, address= Ha Noi,age =17]