// 反序列化 fungetSerializable(): Serializable { val `in` = ObjectInputStream(FileInputStream(getFilePath(USER_CACHE_FILE))) val so = `in`.readObject() as Serializable `in`.close() return so }
/** * 持久化Parcelable对象到disk, 但官方不建议这样做,理由如下: * changes in the underlying implementation of any of the data in the Parcel can render older data unreadable. */ funsaveParcelable(parcelable: Parcelable) { val parcel = Parcel.obtain() parcel.writeParcelable(parcelable, 0) valout = DataOutputStream(FileOutputStream(getFilePath(USER_CACHE_FILE2))) out.write(parcel.marshall()) parcel.recycle() }
// 反序列化 fungetParcelable(): Parcelable? { val ino = DataInputStream(FileInputStream(getFilePath(USER_CACHE_FILE2))) valdata = ino.readBytes() val parcel = Parcel.obtain() parcel.unmarshall(data, 0, data.size) parcel.setDataPosition(0) val parcelable = parcel.readParcelable<Parcelable>(Thread.currentThread().contextClassLoader) ino.close() parcel.recycle() return parcelable }