2018-11-25

android中的序列化

(注意):靜態成員變量屬于類不屬于對象,所以不會參加序列化過程;其次用transient關鍵字標記的成員變量比參與序列化過程。

  • 實現序列化化有兩種方式:
    1.Serializable: java和android中都可以使用
    2.Parcelable: android中特有的

  • 實現方式,首先來看Serializable:
    1.使類實現Serializable接口
    2.在類的聲明中指定一個類似下面的標識(非必須,但是在反序列化的時候會有影響)

    private static final long serialVersionUID =1L
    
    1. 實例:
public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    public int userId;
    public String userName;
    public boolean isMale;
    public User(int userId, String userName, boolean isMale) {
        this.userId = userId;
        this.userName = userName;
        this.isMale = isMale;
    }
}

//序列化過程

User user = new User(0, "jack", true);
try {
    ObjectOutputStream out = new ObjectOutputStream(
            new FileOutputStream("cache.txt"));
    out.writeObject(user);
    out.close();
} catch (IOException e) {
    e.printStackTrace();
}

//反序列化過程

try {
    ObjectInputStream in = new ObjectInputStream(new FileInputStream("cache.txt"));
    User newUser = (User) in.readObject();
} catch (IOException e) {
    e.printStackTrace(
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}
  • Parcelable
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。