C# FileStream 對(duì)象
FileStream對(duì)象表示指向磁盤(pán)或網(wǎng)絡(luò)路徑上的文件的流。這個(gè)類提供了在文件中讀寫(xiě)字節(jié)的方法,但經(jīng)常使用StreamReader或StreamWriter執(zhí)行這些功能。這是因?yàn)镕ileStream類操作的是字節(jié)和字節(jié)數(shù)組,而Stream類操作的是字符數(shù)據(jù)。字符數(shù)據(jù)易于使用,但是有些操作,如隨機(jī)文件訪問(wèn)(訪問(wèn)文件中間某點(diǎn)的數(shù)據(jù)),就必須由FileStream對(duì)象執(zhí)行。
還有幾種方法可以創(chuàng)建FileStream對(duì)象。其構(gòu)造函數(shù)具有許多不同的重載版本,最簡(jiǎn)單的構(gòu)造函數(shù)僅有兩個(gè)參數(shù),即文件名和FileMode枚舉值。
FileStream aFile = new FileStream(filename, FileMode.<Member>);
FileMode枚舉包含幾個(gè)成員,指定了如何打開(kāi)或創(chuàng)建文件。稍后介紹這些枚舉成員。另一個(gè)常用的構(gòu)造函數(shù)如下:
FileStream aFile =
new FileStream {filename, FileMode.<Member>, FileAccess,<Menuber>);
第三個(gè)參數(shù)是FileAccess枚舉的一個(gè)成員,它指定了流的作用。FileAceess枚舉的成員如表所示。
成 員 | 說(shuō) 明 |
Read | 打開(kāi)文件,用于只讀 |
Write | 打開(kāi)文件,用于只寫(xiě) |
RcadWrite | 打開(kāi)文件,用于讀寫(xiě) |
對(duì)文件進(jìn)行非FileAccess枚舉成員指定的操作會(huì)導(dǎo)致拋出異常。此屬性的作用是,基于用戶的權(quán)限級(jí)別改變用戶對(duì)文件的訪問(wèn)權(quán)限。
在FileStream構(gòu)造函數(shù)不使用FileAccess枚舉參數(shù)的版本中,使用默認(rèn)值FileAccess. ReadWrite。
FileMode枚舉成員如下表所示。使用每個(gè)值會(huì)發(fā)生什么,取決于指定的文件名是否表示已有的文件。注意,這個(gè)表中的項(xiàng)表示創(chuàng)建流時(shí)該流指向文件中的位置,下一節(jié)將詳細(xì)討論這個(gè)主題。除非特別說(shuō)明,否則流就指向文件的開(kāi)頭處。
成 員 | 文件存在 | 文件不存在 |
Append | 打開(kāi)文件,流指向文件的末尾處,只能與枚舉FileAccess.Write | 創(chuàng)建一個(gè)新文件。只能與枚舉 |
結(jié)合使用 | FileAccess.Write 結(jié)合使用 | |
Create | 刪除該文件,然后創(chuàng)建新文件 | 創(chuàng)建新文件 |
CreateNew | 拋出異常 | 創(chuàng)建新文件 |
Open | 打開(kāi)文件,流指向文件開(kāi)頭處 | 拋出異常 |
OpenOrCreate | 打開(kāi)文件,流指向文件開(kāi)頭處 | 創(chuàng)建新文件 |
Truncate | 打開(kāi)文件,淸除其內(nèi)容。流指向文件開(kāi)頭處,保留文件的初始創(chuàng) 建曰期 | 拋出異常 |
File和Filelnfo類都提供了 OpenRead()和OpenWrite()方法,更易于創(chuàng)建FileStream對(duì)象。前者打開(kāi)了只讀訪問(wèn)的文件,后者只允許寫(xiě)入文件。這些都提供了快捷方式,因此不必以FileStream構(gòu)造函數(shù)的參數(shù)形式提供所有必要的信息。例如,下面的代碼行打開(kāi)了用于只讀訪問(wèn)的Data.txt文件:
FileStream aFile = File.OpenRead{"Data.txt");
下面的代碼執(zhí)行同樣的功能:
Filelnfo aFilelnfo = new Filelnfo("Data.txt");
FileStream aFile = aFilelnfo.OpenRead();
點(diǎn)擊加載更多評(píng)論>>