位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C# > 問(wèn)題詳情

C# FileStream 對(duì)象

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-10

    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();


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部