筆記1 輸入輸出I O流架構

2021-06-18 16:58:58 字數 3199 閱讀 9943

一、i/o類

根據資料訪問型別,提供i/o各種功能的類,這些類主要位於system.io。

i/o類可分為兩類:  1、專門操作檔案、目錄;

2、處理各類資料的訪問。

1、檔案目錄類主要有兩大類:  (1)  派生於object的通用類directory,file,path

(2)  派生於filesysteminfo的兩個特定類:fileinfo,directoryinfo

2、資料訪問類主要有三種:(1)二進位制;binaryreader 及 binarywriter

(2)位元組;stream及其衍生的子類

(3)字元。textreadcr、tcxtwritcr及這兩個類下衍生的子類

最重要的是stream類,它是所有資料流類的基類

如圖,上面三紅框是資料操作類:二進位制(左上)、位元組(左下)、字元文字(右邊)

注:stream中:bufferedstream   以記憶體緩衝區為資料來源,對資料訪問

filestream            以檔案內容為資料來源,對資料訪問

memorystream    以記憶體為資料訪問的**

networkstream    以連線網路為資料來源,對資料訪問

cryptosteam         對資料加解密

二、資料流為何叫流

把資料(檔案、字串等)當作流動「物質」,以某種形式(二進位制、位元組、字元等),好像有次序地通過乙個「管道」,到達另一目的地。

儘管不同形式資料有不同的類、方法來操作,但是,真正可以連線底層資料來源的,只有steam類及其派生的子類;

其它類(二進位制、字元),都必須串接到資料流,以連線到底層的資料來源,進行訪問。

三、檔案目錄作業系統

正如前面所說,有兩類:通用與特定,它們都可新建、開啟、刪除、複製、移動目錄和檔案。

通用類(左邊):派生於基類object,只提供共享方法成員,不針對特定檔案和目錄,故不需要建立特定的類物件,就可直接進行

檔案目錄操作。

四、資料操作

1、位元組資料讀寫

stream類是這一組類的核心基類,其下派生幾個重要資料流子類:

注意:後面兩種並不是system.io空間。networkstream必須由連線網路端點的socket物件返回其物件。

cryptostream物件則是經過串接其它stream類物件,新建其物件,然後加解密資料。

2、字元資料讀寫

主要由textreader和textwriter這兩個類,提供字元組格式資料串流輸入和輸出功能。

3、二進位制資料讀寫

主要由binaryreader與binarywriter類來操作,提供對boolean,整型、浮點型等基礎資料型別的讀寫。

基本資料如:

四、控制台i/o

控制台是文字模式的io。

由於介面貧乏,故現很少用,主要用於例子演示。io流程如下:

例子:

'控制台io

module module1

sub main()

dim yname as string

tryconsole.writeline("輸入你的名字:")

yname = console.readline()

console.writeline("hello," & yname & "!!!")

catch ex as exception

console.writeline(ex.message)

end try

console.readline()

end sub

end module

module module1

sub main()

dim s as string

dim intread as int32

tryconsole.write("請輸入字元:")

dointread = console.read() '一次讀乙個字元(包括換行符)

s = chrw(intread)

console.writeline(s)

loop while intread <> -1

console.readline()

catch ex as exception

console.writeline(ex.message)

end try

end sub

end module

五、io異常處理。ioexception是所有io異常類的基類。

同一般程式一樣,可以用try。。。。catch。。。進行監控捕獲。

注:  endofstreamexception是游標已到流的末尾,再次讀時會異常。

輸入輸出流(IO流

流 流 stream 的概念源於 unix 中管道 pipe 的概念,在 unix 中,管道是一條不間斷的位元組流,用來實現程式或程序間的通訊,或讀寫外圍裝置 外部檔案等。重要 1.流操作結束後必須關閉。2.inputstream reader outputstream write全是抽象,不能直接...

IO 輸入輸出流

io流 輸入流位元組輸入流 inputstream fileinputstream 構造方法 fileinputstream file file fileinputstream string filename bufferedinputstream 成員方法 int read 讀乙個位元組 int ...

輸入輸出流(IO)

outputstream,所有輸出位元組流的基類,抽象類 字元流 位元組流 編碼 解碼 writer,所有輸出字元流的基類,抽象類 什麼情況下使用字元流 如果讀寫需要編碼和解碼的資料 字元資料 這時候我們就使用字元流 轉換流的作用 可以把對應的位元組流轉換成字元流使用。將輸入控制台的一行字元資料顯示...