流(2)--流

BinaryReader,BinaryWriter

Writer的方法主要有--Seek主要用來選取插入的位置,Write方法重載了寫入bool,decimal,double,float,int,long,sbyte,short,string,unit,ulong,ushort,byte,byte[],char,char[]的方法。

 

可以看見其中的幾個方法--PeekChar,Read,Readxxx,對於byte和char有Readxxxs。Readxxx和Readxxxs行爲基本一致,讀一個類型,往後移,而且當讀到盡頭,再調用這個方法將拋出異常。Read有3個重載方法,第一個是Read,返回int,int是讀取的值,當讀到流的末尾時返回的是-1.第二個是Read到一個char[]中指定讀到char[]的什麼位置,要讀幾個字符,返回的是讀取字符的個數,當讀到流的末尾返回0,還有一個重載是byte[]類似於char[]。PeekChar是獲取下一個char,返回讀取的東東,但是流不往後走,也就是下次讀還是這個字符。

StringWriter,StringReader

StringWriter類提供一個類似於Stream的方法連接字符串。字符串連接是一個開銷很大的操作,因爲字符串本身是不變的(immutable)類型。用 StringWriter來連接字符串會提供更好的性能。StringWriter類只是另一個對象 -- StringBuilder 的封裝,StringBuilder纔是真正用來執行字符串連接的類。你可以將StringBuilder作爲一個參數構造器傳入 StringWriter (否則會在其內部生成一個實例),並用GetStringBuilder方法返回StringBuilder。這是一個基類型,只接受和操作string,不參與修飾別的流。

http://topic.csdn.net/u/20090927/11/499c6042-df94-4345-93bc-afeaf7c49ee5.html

FileStream --以byte[]數組形式操作,所以是二進制的。支持Seek,支持異步

BufferedStream-- 帶緩衝的流,是修飾類流。注意使用flush。

StreamWriter,StreamReader --操作文本,提供了ReadLine,WriteLine方法就是證明。StreamReader構造器接受一個Stream對象或者一個文件路徑 (你可以使用Universal Naming Convention [UNC] 路徑,但不能用URL)。你還可以指定這些參數:比如編碼類型(encoding type)(如果沒有特別指定,系統會默認使用UTF8編碼);作爲緩存的內置緩衝器大小(很可能通過BufferedStream對象來實現);還有一 個布爾值,它用來指示是否應通過該Stream的第一個字節來判斷編碼類型。可以看到,StreamReader是個很有用的封裝(wrapper)類

TextReader,TextWriter --表示可讀取連續字符系列的讀取器。TextReader 爲 StreamReader 和 StringReader 的抽象基類,它們分別從流和字符串讀取字符。使用這些派生類可打開一個文本文件以讀取指定範圍的字符,或基於現有的流創建一個讀取器。

MemoryStream --創建其支持存儲區爲內存的流。 MemoryStream 類創建這樣的流,該流以內存而不是磁盤或網絡連接作爲支持存儲區。MemoryStream 封裝以無符號字節數組形式存儲的數據,該數組在創建 MemoryStream 對象時被初始化,或者該數組可創建爲空數組。可在內存中直接訪問這些封裝的數據。內存流可降低應用程序中對臨時緩衝區和臨時文件的需要。

異步IO --不解釋,看代碼

網頁流--代碼

 

 

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