物件序列化

2021-06-27 16:46:33 字數 1429 閱讀 5640

物件序列化:就是講乙個物件轉換為二進位制的資料流,如果乙個類的物件要想實現物件序列化,則物件所在的類必須實現serializable 介面。在此介面中沒有任何方法,此介面只是做為了乙個標識,表示本類的物件具備了序列化的能力而已。

如果要想完成物件的序列化,則還要依靠 objectoutputstream 類和 objectinputstream類,前者屬於序列化操作,後者屬於反序列化操作。

public

classpersonimplementsserializable

@override

publicstring tostring()

}下面使用objectoutputstream進行序列化操作。

file file = newfile("d:" + file.separator + "person.ser");

objectoutputstreamoos = null;

oos= new objectoutputstream(new fileoutputstream(file));

personper = new person("張三", 30);

oos.writeobject(per);

oos.close();

生成的都是二進位制檔案,物件序列化之後,就可以通過objectinputstream進行反序列化的操作。

file file = new file("d:" +file.separator + "person.ser");

objectinputstreamois = null;

ois= new objectinputstream(new fileinputstream(file));

objectobj = ois.readobject();

personper = (person) obj;

system.out.println(per);

以上的操作,時間上是將整個物件進行了序列化的操作,如果現在假設類中的某個屬性

不需要序列化怎麼辦?

在屬性型別前加上關鍵字  transient 例:private transient int age;

這樣的屬性就不會被序列化了。

如何對多個物件使用序列化?

public class arrayserdemo ;

ser(per);//序列化

personp = (person) dser();//反序列化

print(p);//輸出

}public static void ser(object obj) throw***ception

public static object dser() throw***ception

public static void print(person per) }}

物件序列化 反序列化

必須新增引用 using system.io using system.runtime.serialization using system.runtime.serialization.formatters.binary 方法 region 物件序列化 物件序列化 任意物件 字串 public st...

物件 序列化 反序列化

public class eventmessage 資訊提示類 型別1 操作日誌2 安全日誌 標題 內容 icon型別 url 執行script指令碼字串 需加 public static void messagebox int m type,string m title,string m body...

物件序列化

using system using system.io using system.diagnostics using system.reflection using system.runtime.serialization using system.runtime.serialization.fo...