国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

J2SE中的序列化詳解(一)

2019-11-18 11:10:06
字體:
供稿:網(wǎng)友


  java中處處體現(xiàn)著簡單的程序設(shè)計風(fēng)格,序列化作為最常用的功能之一,在java中的設(shè)計尤為“簡單”。在ObjectInputStream 和ObjectOutputStream的幫助下,我們可以輕松的實現(xiàn)序列化。

只要我們的class 實現(xiàn)了java.io.Serializable接口,就可以利用ObjectOutputStream的writeObject()方法將一個對象序列化;利用ObjectInputStream的readObject()方法,可以返回讀出的object對象。Serializable接口不需要我們實現(xiàn)任何方法。

以下是一個例子,它能給我們一個感性的初步熟悉:

Serial實現(xiàn)了就java.io.Serializable接口,是需要序列化的類。我們首先構(gòu)造一個Serial的對象serial1然后將其保存(序列化)在一個文件中,而后再將其讀出(反序列化),并打印其內(nèi)容。

package Stream;

/**

* @author favo yang

*/

import java.io.*;

public class Serial implements Serializable {

 int company_id;

 String company_addr;

 boolean company_flag;

 public Serial(){}//不同于C++,沒有也可以

 public Serial(int company_id,String company_addr,boolean company_flag) {

this.company_id=company_id;

this.company_addr=company_addr;

this.company_flag=company_flag;

 }

 public static void main(String[] args) {

Serial serial1 = new Serial(752,"dayer street #5 building 02-287",false);//構(gòu)造一個新的對象

FileInputStream in=null;

FileOutputStream out=null;

ObjectInputStream oin=null;

ObjectOutputStream oout=null;

try {

 out = new FileOutputStream("5.txt");

 oout = new ObjectOutputStream(out);

 serial1.serialize(oout);//序列化

 oout.close();

 oout=null;

 in = new FileInputStream("5.txt");

 oin = new ObjectInputStream(in);

 Serial serial2 = Serial.deserialize(oin);//反序列化

 System.out.PRintln(serial2);//打印結(jié)果

} catch (Exception ex){

 ex.printStackTrace();

} finally{

 try {

if (in != null) {

 in.close();

}

if (oin != null) {

 oin.close();

}

if (out != null) {

 out.close();

}

if (oout != null) {

 oout.close();

}

 } catch (IOException ex1) {

ex1.printStackTrace();

 }

}

 }

 /**

 * deserialize

 */

 public static Serial deserialize(ObjectInputStream oin) throws Exception{

Serial s=(Serial)oin.readObject();

return s;

 }

 public String toString() {

return "DATA: "+company_id+" "+company_addr+" "+company_flag;

 }

 /**

* serialize

 */

 public void serialize(ObjectOutputStream oout) throws Exception{

oout.writeObject(this);

 }

}


運(yùn)行結(jié)果:DATA: 752 dayer street #5 building 02-287 false

正確打印了結(jié)果。



上一篇:J2SE簡介

下一篇:J2SE1.5注釋語法簡介

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 屏山县| 宁明县| 瑞金市| 弥勒县| 寿光市| 青神县| 文水县| 卢湾区| 洞口县| 桐乡市| 定结县| 沂水县| 石棉县| 司法| 星子县| 建阳市| 广丰县| 肇庆市| 长白| 安溪县| 深圳市| 樟树市| 南乐县| 东至县| 酉阳| 忻城县| 河北区| 曲阜市| 浮山县| 贵南县| 南靖县| 门源| 扬中市| 来宾市| 云梦县| 新密市| 五原县| 南岸区| 双辽市| 涟源市| 广平县|