ICE的輸入流和輸出流

2021-06-05 12:06:08 字數 1884 閱讀 3122

1、ice提供流式介面inputstream來進行物件的解碼操作,通過如下方法構造乙個輸入流物件:

inputstreamptr createinputstream(const ice::communicatorptr& communicator, const std::vector& data);

2、在輸入流物件inputstream上提供了多個過載的read方法,用來從輸入流中提取內容:

a、提供基本資料型別的read:

double d; in->read(d); string s; in->read(s);

b、提供內建sequence物件的read:參考ice\slice\ice\buildinsequence.ice

intseq s; in->read(s);

c、從效率上考慮,提供sequence的零拷貝read:

std::pairp;

iceutil::scopedarraya;

in->read(p, a);

d、提供讀取proxy物件的方法:

ice::objectprx readproxy(),使用時需要向下轉型

templateinline void read(iceinternal::proxyhandle& v),傳入已有proxy,自動做向下轉型

e、提供讀取class物件的方法:

templateinline void read(iceinternal::handle& v)

f、提供讀取異常的方法:

void throwexception(),通過在try&catch中呼叫該方法獲取異常

g、提供讀取指標到開始的方法:void rewind()

h、其他的擴充套件型別為了能夠支援inputstream的提取操作,在slice中定義型別,讓後在編譯slice檔案時加上--stream引數

3、ice提供流式介面outputstream來進行物件的編碼操作,通過如下方法構造乙個輸入流物件:

outputstreamptr createoutputstream(const ice::communicatorptr& communicator);

4、在輸出流物件outputstream上提供了多個過載的write方法,用來向輸出流中寫入內容:

a、提供基本資料型別的write:

double d=3.1; out->write(d); string s="abc"; out->write(s);

b、提供內建sequence物件的write:參考ice\slice\ice\buildinsequence.ice

intseq s; out->write(s);

c、從效率上考慮,提供sequence的零拷貝write:

vectordata = ...;

out->write(&v[0], &v[v.size()]);

d、提供寫入proxy物件的方法:

templateinline void write(const iceinternal::proxyhandle& v)

e、提供寫入class物件的方法:

templateinline void write(const iceinternal::handle& v)

f、提供寫入異常的方法:

void writeexception(const ice::userexception & ex)

g、提供將流式buffer中內容寫入byte陣列方法:void finished(std::vector< ice::byte > & data)

h、提供寫入位置重置和清除寫入buffer的方法:void reset(bool clearbuffer)

i、其他的擴充套件型別為了能夠支援outputstream的寫入操作,在slice中定義型別,讓後在編譯slice檔案時加上--stream引數

輸入流 輸出流

接受乙個字串,遇 空格 tab 回車 都結束 用法1 單個接收 cin.get 字元變數名 可以用來接收字元 include using namespace std main char ch ch cin.get 或者cin.get ch cout 用法2 cin.get 字元陣列名,接收字元數目 ...

輸入流 輸出流

1 mkdir 必須保證路徑上的父資料夾都存在 system.out.println 建立是否成功 f1.mkdir mkdirs 建立路徑上所有不存在的資料夾 system.out.println 建立是否成功 f1.mkdirs 2 讀取檔案 try fis.close catch fileno...

IO流 輸入流和輸出流

1.輸入流和輸出流的聯絡和區別,字元流和位元組流的聯絡和區別 輸入流是得到資料,輸出流是輸出資料。字元流和位元組流是流的一種劃分,按處理照流的資料單位進行的劃分。兩類都分為輸入和輸出操作。在位元組流中輸出資料主要是使用outputstream完成,輸入使inputstream 在字元流中輸出主要是使...