C 的位元組與流

2021-07-24 07:46:49 字數 1148 閱讀 6040

計算機中檔案有很多種,我們知道實際存在計算機中的都是二進位制。這裡我記錄了通過流對檔案的讀取操作。

首先在這裡簡單涉及下位,位元組,字元的概念。

位(bit)可以表示0或1,

位元組(byte)由8位組成(bit),可以表示0-255,256個不同的資料。

字元,字元根據編碼的不同有所區別。

ansi編碼(本地化),它是支援本地的編碼方式,不同 ansi 編碼之間互不相容。在簡體中文系統下,ansi 編碼代表 gb2312 編碼,在日文作業系統下,ansi 編碼代表 jis 編碼。對於字元來說ansi以單位元組存放英文本元,以雙位元組存放中文等字元。

unicoide編碼,unicode下,英文和中文的字元都以雙位元組存放。用來給 unicode 字符集編碼的標準有很多種,比如:utf-8, utf-7, utf-16, unicodelittle, unicodebig 等。

utf-8時表示乙個字元是可變的,有可能是用乙個位元組表示乙個字元,也可能是兩個,三個.當然最多不能超過3個位元組了.反正是根據字元對應的數字大小來確定.

utf-16任何字元對應的數字都用兩個位元組來儲存。

c# stream流的主要用途就是與應用程式外部的檔案或者資料來源進行資料互動。有檔案流filestream,網路流netwrokstream,訪問網路時inputstream,outputstream等。流的內部就是對二進位制資料的讀取。

流可以一次性讀取,也可以迴圈讀取。

一次性讀取:

public void read()

迴圈讀取:

public void readloop()

while (bytesread > 0);

source.dispose();

deststream.dispose();

}

streamreader, streamwriter。stringreader, stringwriter。他們是流的包裝器類,方便對流的讀取。以下是示例**

public void streamreaderread()

public void streamwriterwrite()

字元(Character)流與位元組(Byte)流

先說說區分 位元組流按位元組讀寫,字元流按字元讀寫。位元組流屬於全能流,可以讀取任意形式的二進位製流。字元流只能讀取字元文字此類。比較好區分的方法 以stream結尾的相關流類都是位元組流,以reader writer結尾的都是字元流。字元流使用緩衝區作為中介幫助讀寫流檔案。好處顯而易見,多了乙個緩...

C 中的流 位元組 字元

using system using system.collections.generic using system.linq using system.text using system.io namespace 流 位元組 字元 字串 str if m stream.canwrite 如果可寫入...

位元組流與字元流

位元組流 輸入位元組流 inputstream 所有輸入位元組流的基類,是抽象類 fileinputstream 讀取檔案資料的輸入位元組流 bufferedinputstream 緩衝輸入位元組流,該類可以提高讀取檔案資料的效率 輸出位元組流 outputstream 所有輸出位元組流的基類,是抽...