課程
/后端開發(fā)
/Java
/文件傳輸基礎(chǔ)——Java IO流
請問下,自己反序列化的時候,寫的是?s.readInt();?那如果有多個transient修飾的int屬性,那么怎么區(qū)別呢
2014-11-18
源自:文件傳輸基礎(chǔ)——Java IO流 6-2
正在回答
寫入順序和讀取順序一致即可,見下面的代碼,在老師代碼的基礎(chǔ)上加了一個age1屬性,用transient修飾
package com.imooc.io;
import java.io.Serializable;
public class Student implements Serializable{
private String stuno;
private String stuname;
//該元素不會進行jvm默認的序列化,也可以自己完成這個元素的序列化
private transient int stuage; ?
private transient int age1;
public Student(String stuno, String stuname, int stuage,int age1) {
super();
this.stuno = stuno;
this.stuname = stuname;
this.stuage = stuage;
this.age1=age1;
}
public String getStuno() {
return stuno;
public int getAge1() {
return age1;
public void setAge1(int age1) {
this.age1 = age1;
public void setStuno(String stuno) {
public String getStuname() {
return stuname;
public void setStuname(String stuname) {
public int getStuage() {
return stuage;
public void setStuage(int stuage) {
@Override
public String toString() {
return "Student [stuno=" + stuno + ", stuname=" + stuname + ", stuage="
+ stuage + ",age1="+age1+"]";
private void writeObject(java.io.ObjectOutputStream s)
? ? ? ?throws java.io.IOException{
s.defaultWriteObject();//把jvm能默認序列化的元素進行序列化操作
s.writeInt(stuage);//自己完成stuage的序列化
s.writeInt(age1);
private void readObject(java.io.ObjectInputStream s)
? ? ? ?throws java.io.IOException, ClassNotFoundException{
?s.defaultReadObject();//把jvm能默認反序列化的元素進行反序列化操作
?this.stuage = s.readInt();//自己完成stuage的反序列化操作
?this.age1=s.readInt();
sdfsdf_0001 提問者
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內(nèi)容
1 回答加transient過后,自己序列化和反序列化后得到的還是0?
1 回答序列化和反序列化問題
4 回答反序列化問題
2 回答反序列化問題
3 回答反序列化String
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2014-11-18
寫入順序和讀取順序一致即可,見下面的代碼,在老師代碼的基礎(chǔ)上加了一個age1屬性,用transient修飾
package com.imooc.io;
import java.io.Serializable;
public class Student implements Serializable{
private String stuno;
private String stuname;
//該元素不會進行jvm默認的序列化,也可以自己完成這個元素的序列化
private transient int stuage; ?
private transient int age1;
public Student(String stuno, String stuname, int stuage,int age1) {
super();
this.stuno = stuno;
this.stuname = stuname;
this.stuage = stuage;
this.age1=age1;
}
public String getStuno() {
return stuno;
}
public int getAge1() {
return age1;
}
public void setAge1(int age1) {
this.age1 = age1;
}
public void setStuno(String stuno) {
this.stuno = stuno;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public int getStuage() {
return stuage;
}
public void setStuage(int stuage) {
this.stuage = stuage;
}
@Override
public String toString() {
return "Student [stuno=" + stuno + ", stuname=" + stuname + ", stuage="
+ stuage + ",age1="+age1+"]";
}
private void writeObject(java.io.ObjectOutputStream s)
? ? ? ?throws java.io.IOException{
s.defaultWriteObject();//把jvm能默認序列化的元素進行序列化操作
s.writeInt(stuage);//自己完成stuage的序列化
s.writeInt(age1);
}
private void readObject(java.io.ObjectInputStream s)
? ? ? ?throws java.io.IOException, ClassNotFoundException{
?s.defaultReadObject();//把jvm能默認反序列化的元素進行反序列化操作
?this.stuage = s.readInt();//自己完成stuage的反序列化操作
?this.age1=s.readInt();
}
}