【轉】C#流的概念

注意:

1、在計算機編程中,流就是一個類的對象,很多文件的輸入輸出操作都以類的成員函數的方式來提供。 

2、計算機中的流其實是一種信息的轉換。它是一種有序流,因此相對於某一對象,通常我們把對象接收外界的信息輸入(Input)稱爲輸入流,相應地從對象向外輸出(Output)信息爲輸出流,合稱爲輸入/輸出流(I/O Streams)。對象間進行信息或者數據的交換時總是先將對象或數據轉換爲某種形式的流,再通過流的傳輸,到達目的對象後再將流轉換爲對象數據。所以,可以把流看作是一種數據的載體,通過它可以實現數據交換和傳輸。 

3、程序中流的概念和操作系統中流的概念是不一樣的,操作系統中的流可以看成是數據流,而程序中的流的概念其實是一個用來處理流的類。 

4、流就是在內存中操作數據的一種方式 

5、.net中有多種多樣的流類型 

6、C#裏有很多封裝類不一定都要用流。

.NET Framework中進行的所有輸入、輸出工作都要用到流,流是計算機的輸入和輸出之間運動的數據的序列。流的概念源於unix中管道的概念。在unix中,管道是一條不間斷的字節流。用來實現程序或進程間的通信,可讀寫外圍設備、外部文件等。

C#流的概念可以和生活中的流相對應。在生活中有水流、電流等,首先要有一個源頭,還需要有傳輸的管道。水流有河,水管作爲傳輸管道,電流有電線,而這些流都會有一個目的,就是它的流向。C#的流也需要源泉——文件,數據流入流出管道以及數據的流向。

C#採用流模型讀寫文件數據,按照流的方向把流分爲兩種:輸入流和輸出流。輸入流用於將數據序列可以訪問的內存或變量中。輸入流可以來自任何源,在些主要分析讀取磁盤文件,可以理解爲以文件爲源,以內存爲目的地。輸出流用於向某些外部目標寫入數據,可以是磁盤文件,打印設備或另一個程序。在此主要關注以內存爲源,文件爲目的的輸出流。

C# 流相關的類層次結構:

System.Object    | -- System.MarshalByRefObject   |-- Stream   
                           |                                                    |                  |-- BufferedStream
                           |                                                    |                  |-- MemoryStream
                           |                                                    |                  |-- FileStream 【文件流】
                           |                                                    |-- TextReader
                           |                                                    |                  |-- StringReader
                           |                                                    |                  |-- StreamReader【流讀取器】
                           |                                                    |-- TextWriter
                           |                                                                       |-- StringWriter
                           |                                                                       |-- StreamWriter【流寫入器】
                           |-- BinaryReader 
                           |-- BinaryWriter   

對於文件的讀寫,最常用的類簡單介紹如下:
Stream類:流的基類,定義流的基本操作。
FileStream類:用於對文件執行讀寫操作,支持同步和異步讀寫。
MemoryStream類:無緩存的流,該流以內存作爲數據流。
NetWorkStream類:以網絡爲數據源的流,可以通過此流發送或接收網絡數據。
TextReader類:StreamReader對象的抽象基類,定義基本字符讀取操作。
TextWriter類:StreamWriter對象的抽象基類,定義基本字符寫入操作。
StreamWriter類:向流寫入字符。
StreamReader類:實現從流讀取字符操作。


轉自http://www.360doc.com/content/12/1031/22/10939365_244982756.shtml


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章