C 使用MemoryStream類讀寫記憶體

2021-09-06 05:25:06 字數 1837 閱讀 3810

和filestream一樣,memorystream和bufferedstream都派生自基類stream,因此它們有很多共同的屬性和方法,但是每乙個類都有自己獨特的用法。這兩個類都是實現對記憶體進行資料讀寫的功能,而不是對永續性儲存器進行讀寫。

讀寫記憶體-memorystream類

memorystream類用於向記憶體而不是磁碟讀寫資料。memorystream封裝以無符號位元組陣列形式儲存的資料,該陣列在建立memorystream物件時被初始化,或者該陣列可建立為空陣列。可在記憶體中直接訪問這些封裝的資料。記憶體流可降低應用程式中對臨時緩衝區和臨時檔案的需要。下表列出了memorystream類的重要方法:

read():讀取memorystream流物件,將值寫入快取區。

readbyte():從memorystream流中讀取乙個位元組。

write():將值從快取區寫入memorystream流物件。

writebyte():從快取區寫入memoytstream流物件乙個位元組。

read方法使用的語法如下:

mmstream.read(byte buffer,offset,count)

其中mmstream為memorystream類的乙個流物件,3個引數中,buffer包含指定的位元組陣列,該陣列中,從offset到(offset +count-1)之間的值由當前流中讀取的字元替換。offset是指buffer中的位元組偏移量,從此處開始讀取。count是指最多讀取的位元組數。write()方法和read()方法具有相同的引數型別。

memorystream類的使用例項:

using system;

using system.io;

using system.text;

class program{

static void main()

{int count;

byte bytearray;

char chararray;

unicodeencoding uniencoding=new unicodeencoding();

byte firststring=uniencoding.getbytes("努力學習");

byte secondstring=uniencoding.getbytes("不做c#中的菜鳥");

using (memorystream memstream=new memorystream(100))

{memstream.write(firststring,0,firststring.length);

count=0;

while(countmemorystream.capacity 屬性 取得或設定配置給這個資料流的位元組數目。

memorystream.position 屬性 指定當前流的位置。

memorystream.length 屬性獲取用位元組表示的流長度。

seekorigin()是乙個列舉類,作用設定流的乙個引數。

seekorigin.begin我得理解就是檔案的最開始,「0」是偏移,表示跳過0個位元組。寫2就是跳過2個位元組。

memorystream類通過位元組讀寫資料。本例中定義了寫入的位元組陣列,為了更好的說明write和writebyte的異同,在**中宣告了兩個byte陣列,其中乙個陣列寫入時呼叫write方法,通過指定該方法的三個引數實現如何寫入。另乙個陣列呼叫了writebyte方法,每次寫入乙個位元組,所以採用while迴圈來完成全部位元組的寫入。寫入memorystream後,可以檢索該流的容量,實際長度,當前流的位置,將這些值輸出到控制台。通過觀察結果,可以確定寫入memorystream流是否成功。

呼叫read和readbyte兩種方法讀取memorystream流中的資料,並將其進行unicode編碼後輸出到控制台。

C 使用MemoryStream類讀寫記憶體

和filestream一樣,memorystream和bufferedstream都派生自基類stream,因此它們有很多共同的屬性和方法,但是每乙個類都有自己獨特的用法。這兩個類都是實現對記憶體進行資料讀寫的功能,而不是對永續性儲存器進行讀寫。memorystream類用於向記憶體而不是磁碟讀寫資...

C 使用MemoryStream類讀寫記憶體

memorystream和bufferedstream都派生自基類stream,因此它們有很多共同的屬性和方法,但是每乙個類都有自己獨特的用法。這兩個類都是實現對記憶體進行資料讀寫的功能,而不是對永續性儲存器進行讀寫。讀寫記憶體 memorystream類 memorystream類用於向記憶體而不...

使用MemoryStream類讀寫記憶體

memorystream類用於向記憶體而不是磁碟讀寫資料。memorystream封裝以無符號位元組陣列形式儲存的資料,該陣列在建立memorystream物件時被初始化,或者該陣列可建立為空陣列。可在記憶體中直接訪問這些封裝的資料。記憶體流可降低應用程式中對臨時緩衝區和臨時檔案的需要。下面列出了m...