序列化 檔案的輸入與輸出

2021-08-20 16:17:34 字數 1498 閱讀 7033

本次的討論不涉及資料庫

將序列化物件寫入檔案:

1、開啟檔案

fileoutputstream filestream=new fileoutputstream(「mygame.ser」);

//檔案不存在會自動建立

2、鏈結到開啟的檔案

objectoutputstream os=new objectoutputstream(filestream);

3、寫入物件

os.writeobject(character one);

os.writeobject(character two);

os.writeobject(character there);

4、關閉鏈結

os.close()

注意點:

序列化程式會將序列化物件版圖上的所有的東西都儲存下來

序列化意味著全有或全無(若物件中的某引用物件不能序列化,其不能序列化)

類介面serializable,表示類是可以序列化的,它的子類也是自動地可以序列化

類可以序列化意味著其main()由序列化過程可將類物件序列化

如果存在某些資料只在執行期間求出而不必儲存,可使用transient關鍵字

解序列化:

1、開啟檔案

fileinputstream filestream=new fileinputstream(「mygame.ser」)

//注意magame.ser不存在會丟擲異常

2、鏈結到檔案

objectinputstream os=new objectinputstream(filestream)

3、讀取物件

object one=os.readobject();

object two=os.readobject();

object three=os.readobject();

4、轉換物件型別

gamecharacter elf=(gamecharacter) one;

gamecharacter troll=(gamecharacter) two;

gamecharacter magician=(gamecharacter) there;

5、關閉鏈結

os.close();

**讀取文字檔案**

public

class read_file

reader.close();

}catch(exception ex)

}}

或者

public

class cin_txt

**讀出txt檔案**

try }

w.close();

}catch(ioexception ex)

檔案與序列化

carchive類 它沒有基類,它允許你儲存乙個複雜的物件網路在乙個永久的二進位制形式上,通常是硬碟,在這個物件被刪除之後保持永續性,以後可以從持久的儲存器上載入這個物件,在記憶體中重新構建它們,使物件永續性的過程叫序列化 序列化過程 將物件 資料寫到磁碟,物件刪除後,資料儲存在磁碟,當下次再呼叫資...

序列化與發序列化

1.序列化與反序列化都用的是相同的 binaryformatter bf new binaryformatter 2.使用 流 的方式 filestream fs new filestream 序列化內容路徑 一般為本地bin debug檔案中 類名.bin filemode.openorcreat...

序列化與反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...