檔案流的操作

2022-03-05 01:31:02 字數 3747 閱讀 4462

streamreader實現了抽象基類textreader類,而streamwriter實現了抽象基類textwriter。分別用於對流的讀取與寫入。

先從streamreader說起

一、構造方法

streamreader(stream) 為指定的流初始化 streamreader 類的新例項。 

streamreader(string) 為指定的檔名初始化 streamreader 類的新例項。

streamreader(stream, boolean) 用指定的位元組順序標記檢測選項,為指定的流初始化 streamreader 類的乙個新例項。

streamreader(stream, encoding) 用指定的字元編碼為指定的流初始化 streamreader 類的乙個新例項。

streamreader(string, boolean) 為指定的檔名初始化 streamreader 類的新例項,帶有指定的位元組順序標記檢測選項。

streamreader(string, encoding) 用指定的字元編碼,為指定的檔名初始化 streamreader 類的乙個新例項。

streamreader(stream, encoding, boolean) 為指定的流初始化 streamreader 類的新例項,帶有指定的字元編碼和位元組順序標記檢測選項。

streamreader(string, encoding, boolean) 為指定的檔名初始化 streamreader 類的新例項,帶有指定的字元編碼和位元組順序標記檢測選項。

streamreader(stream, encoding, boolean, int32) 為指定的流初始化 streamreader 類的新例項,帶有指定的字元編碼、位元組順序標記檢測選項和緩衝區大小。

streamreader(string, encoding, boolean, int32) 為指定的檔名初始化 streamreader 類的新例項,帶有指定字元編碼、位元組順序標記檢測選項和緩衝區大小。

二、公共屬性

basestream 返回基礎流。 

currentencoding 獲取當前 streamreader 物件正在使用的當前字元編碼。

endofstream 獲取乙個值,該值表示當前的流位置是否在流的末尾。

三、公共方法

close 關閉 streamreader 物件和基礎流,並釋放與讀取器關聯的所有系統資源。 (重寫 textreader..::.close()()()。) 

createobjref 建立乙個物件,該物件包含生成用於與遠端物件進行通訊的**所需的全部相關資訊。 (繼承自 marshalbyrefobject。)

discardbuffereddata 允許 streamreader 物件丟棄其當前資料。

dispose 已過載。

getlifetimeservice 檢索控制此例項的生存期策略的當前生存期服務物件。 (繼承自 marshalbyrefobject。)

initializelifetimeservice 獲取控制此例項的生存期策略的生存期服務物件。 (繼承自 marshalbyrefobject。)

memberwiseclone 已過載。

peek 返回下乙個可用的字元,但不使用它。 (重寫 textreader..::.peek()()()。)

read 已過載。 讀取輸入流中的下乙個字元或下一組字元。

readblock 從當前流中讀取最大 count 的字元並從 index 開始將該資料寫入 buffer。 (繼承自 textreader。)

readline 從當前流中讀取一行字元並將資料作為字串返回。 (重寫 textreader..::.readline()()()。)

readtoend 從流的當前位置到末尾讀取流。 (重寫 textreader..::.readtoend()()()。)

以下是streamreader類的示例**: 

static void main(string args)

console.writeline("**********====");

console.writeline(convert.tochar(sr.read())); //輸出的數字,要轉換為字元之後才是下乙個字元

using (streamreader sr1 = new streamreader(@"d:\text.txt", encoding.utf8))

}console.writeline("..................");

using (streamreader sr3 = new streamreader(@"d:\text.txt", encoding.utf8))

console.readkey();

}

streamwriter類

一、屬性

autoflush     獲取或設定乙個值,該值指示 streamwriter 是否在每次呼叫 streamwriter..::.write 之後,將其緩衝區重新整理到基礎流。

basestream    獲取同後備儲存區連線的基礎流。

encoding    獲取將輸出寫入到其中的 encoding。 (重寫 textwriter..::.encoding。)

formatprovider   獲取控制格式設定的物件。 (繼承自 textwriter。)

newline     獲取或設定由當前 textwriter 使用的行結束符字串。 (繼承自 textwriter。)

二、方法

close       關閉當前的 streamwriter 物件和基礎流。 (重寫 textwriter..::.close()()()。)

createobjref   建立乙個物件,該物件包含生成用於與遠端物件進行通訊的**所需的全部相關資訊。 (繼承自 marshalbyrefobject。)

dispose       已過載。

finalize      已過載。

flush       清理當前編寫器的所有緩衝區,並使所有緩衝資料寫入基礎流。 (重寫 textwriter..::.flush()()()。)

getlifetimeservice     檢索控制此例項的生存期策略的當前生存期服務物件。 (繼承自 marshalbyrefobject。)

initializelifetimeservice    獲取控制此例項的生存期策略的生存期服務物件。 (繼承自 marshalbyrefobject。)

memberwiseclone      已過載。

write             已過載。 寫入流。

writeline           已過載。

streamwriter類示例:

static void main(string args)

今天遇到乙個非常有趣的需求,需求太長說不明。但是可以理解為,僅僅需要讀取文字的第一行。因為如果整個文字讀取出來再獲得第一行的話,比較占用記憶體。因為那個文字足足有幾m大。因此用到了streamreader的readline()方法。demo如下:

classprogram

console.readkey();}}

其中 被讀取的文字內容如下:

111111111111

222222222222

333333333333

444444444444

555555555555

檔案流的操作

ps 今天記錄一下關於io操作的東西,以前總是在複製別人的 前天終於有時間好好研究一下。研究下來,其實覺得還是蠻充實的,就覺得終於懂的差不多了,以前總覺得查查網上就行了,反正是很簡單的 不過,我想正因為簡單,越簡單的 越要懂得越全越多才好。一 檔案流的讀。using filestream strea...

檔案操作(流)

開啟流 fi le fopen const char filename,const char mode 第乙個引數 檔名 第二個引數 方式 關閉流 r代表read的簡寫,代表可讀可寫,w代表write,b代表bit二進位制位,t代表text r 開啟唯讀檔案,該檔案必須存在 r 開啟可讀可寫的檔案,...

STL 檔案操作 流檔案操作

在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器,所以,cout write stdout n 就表示把字串 wr...