C#包括以下標(biāo)準(zhǔn)IO(輸入/輸出)類,可從不同的源(例如文件,內(nèi)存,網(wǎng)絡(luò),隔離存儲(chǔ)等)進(jìn)行讀取/寫入。
流(Stream): System.IO.Stream 是一個(gè)抽象類,提供了將字節(jié)(讀,寫等)傳輸?shù)皆吹臉?biāo)準(zhǔn)方法。就像包裝器類一樣傳輸字節(jié)。需要從特定源讀取/寫入字節(jié)的類必須實(shí)現(xiàn)Stream類。
以下類繼承Stream類,以提供從特定源讀取/寫入字節(jié)的功能:
FileStream:從物理文件讀取字節(jié)或向物理文件寫入字節(jié),無(wú)論它是.txt,.exe,.jpg還是任何其他文件。FileStream派生自Stream類。
MemoryStream: MemoryStream讀取或?qū)懭氪鎯?chǔ)在內(nèi)存中的字節(jié)。
BufferedStream: BufferedStream從其他Stream讀取或?qū)懭胱止?jié),以提高某些I / O操作的性能。
NetworkStream: NetworkStream從網(wǎng)絡(luò)套接字讀取或?qū)懭胱止?jié)。
PipeStream: PipeStream讀取或?qū)懭雭?lái)自不同進(jìn)程的字節(jié)。
CryptoStream: CryptoStream用于將數(shù)據(jù)流鏈接到密碼轉(zhuǎn)換。
下圖顯示了流類的層次結(jié)構(gòu):
StreamReader:StreamReader是一個(gè)幫助程序類,用于通過(guò)使用編碼值將字節(jié)轉(zhuǎn)換為字符來(lái)從Stream讀取字符。它可用于從不同的流(例如FileStream,MemoryStream等)中讀取字符串(字符)。
StreamWriter:StreamWriter是一個(gè)幫助程序類,用于通過(guò)將字符轉(zhuǎn)換為字節(jié)將字符串寫入Stream。它可以用于將字符串寫入不同的流,例如FileStream,MemoryStream等。
BinaryReader:BinaryReader是用于從字節(jié)讀取原始數(shù)據(jù)類型的幫助程序類。
BinaryWriter:BinaryWriter用二進(jìn)制寫原始類型。
上面的圖像顯示,F(xiàn)ileStream 從物理文件中讀取字節(jié),然后 StreamReader 通過(guò)將這些字節(jié)轉(zhuǎn)換為字符串來(lái)讀取字符串。同樣,StreamWriter 獲取一個(gè)字符串并將其轉(zhuǎn)換為字節(jié),然后寫入 FileStream,然后 FileStream 將字節(jié)寫入一個(gè)物理文件。因此,F(xiàn)ileStream 處理字節(jié),StreamReader 和 StreamWriter 處理字符串。
Stream是用于從不同來(lái)源傳輸字節(jié)的抽象類。它是所有其他類的基類,這些其他類將字節(jié)讀/寫到不同的源。
FileStream 類提供對(duì)物理文件的字節(jié)讀寫功能。
讀寫器類提供了從流類(FileStream,MemoryStream等)中讀取字節(jié)并將字節(jié)轉(zhuǎn)換為適當(dāng)編碼的功能。
StreamReader通過(guò)將字節(jié)轉(zhuǎn)換為字符串,提供了一個(gè)輔助方法來(lái)從FileStream中讀取字符串。StreamWriter提供了一種幫助程序方法,可以通過(guò)將字符串轉(zhuǎn)換為字節(jié)來(lái)將字符串寫入FileStream。
在下一部分中了解如何讀取/寫入文件系統(tǒng)。