android中的序列化
(注意):靜態成員變量屬于類不屬于對象,所以不會參加序列化過程;其次用transient關鍵字標記的成員變量比參與序列化過程。
實現序列化化有兩種方式:
1.Serializable: java和android中都可以使用
2.Parcelable: android中特有的-
實現方式,首先來看Serializable:
1.使類實現Serializable接口
2.在類的聲明中指定一個類似下面的標識(非必須,但是在反序列化的時候會有影響)private static final long serialVersionUID =1L
- 實例:
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