使用MemoryStream類讀寫記憶體

2021-07-25 04:04:55 字數 892 閱讀 3938

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

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

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

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

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

read方法使用的語法:memorystream.read(byte buffer,offset,count)

3個引數中,buffer包含指定的位元組陣列,該陣列中,從offset到(offset +count-1)之間的值由當前流中讀取的字元替換。

count是指最多讀取的位元組數。

write()方法和read()方法具有相同的引數型別。

另一篇部落格對read()引數的解釋,感覺這個更容易理解:

第乙個引數,是讀取到的內容要輸出到的位元組陣列

第二個引數是放在第乙個引數即要輸出的陣列的位置的偏移量

第三個引數是,要讀取的字元數。

用這個方法你可以任意讀取一段需要的記憶體。

注意,read()方法是從當前流的position屬性的位置開始讀,這就是為什麼很多人測試的時候,剛剛寫入記憶體的資料,read()方法無法讀取到內容的原因,因為剛剛寫入記憶體之後,位置恰好是在最後一位了。read()方法當然讀不到。此方法強大之處在於,你可以從乙個記憶體流中讀出你想要的乙個片段。

關於其他屬性和和方法可以去看這個部落格:

C 使用MemoryStream類讀寫記憶體

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

C 使用MemoryStream類讀寫記憶體

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

C 使用MemoryStream類讀寫記憶體

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