Java I/O: Đọc/ghi file (Object, Dữ liệu nguyên thuỷ)

Data stream

Data stream hỗ trợ binary cho các kiểu dữ liệu nguyên thuỷ dưới dạng giá trị String. Tất cả data stream implement interface DataInput hoặc DataOutput, thường dùng nhất là các class DataInputStream và DataOutputStream

Transient

Khi một field được transient, sẽ không serialized field này.

Serialization

Một object có thể serialized phải implement Serializable hoặc Externalization.

Khi có thay đổi field trong class nhưng đọc object từ file đã ghi object trước đó sẽ có InvalidClassException, hoặc phải update field đó thành transient.

Static field không hiện diện trong quá trình serialized.

Khi đọc instance của subclass có superclass không implement Serializable, những field của superclass sẽ được restore thông qua contructors của superclass, contructor không param của superclass phải có quyền truy cập từ subclass. Trường hợp muốn đọc/ghi field của super class, phải override method sau để ghi thủ công các field của superclass

  • writeObject(java.io.ObjectOutputStream)
  • readObject(java.io.ObjectInputStream)

Externalizable

Để sử dụng cần có public contructor không param. Cần implement 2 method sau

  • writeExternal(ObjectOutput)
  • readExternal(ObjectInput)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *