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

C# FileStream 對象

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

    FileStream對象表示指向磁盤或網(wǎng)絡(luò)路徑上的文件的流。這個類提供了在文件中讀寫字節(jié)的方法,但經(jīng)常使用StreamReader或StreamWriter執(zhí)行這些功能。這是因為FileStream類操作的是字節(jié)和字節(jié)數(shù)組,而Stream類操作的是字符數(shù)據(jù)。字符數(shù)據(jù)易于使用,但是有些操作,如隨機文件訪問(訪問文件中間某點的數(shù)據(jù)),就必須由FileStream對象執(zhí)行。

    還有幾種方法可以創(chuàng)建FileStream對象。其構(gòu)造函數(shù)具有許多不同的重載版本,最簡單的構(gòu)造函數(shù)僅有兩個參數(shù),即文件名和FileMode枚舉值。

    FileStream aFile = new FileStream(filename, FileMode.<Member>);

FileMode枚舉包含幾個成員,指定了如何打開或創(chuàng)建文件。稍后介紹這些枚舉成員。另一個常用的構(gòu)造函數(shù)如下:

    FileStream aFile =

    new FileStream {filename, FileMode.<Member>, FileAccess,<Menuber>);

第三個參數(shù)是FileAccess枚舉的一個成員,它指定了流的作用。FileAceess枚舉的成員如表所示。

說 明

Read

打開文件,用于只讀

Write

打開文件,用于只寫

RcadWrite

打開文件,用于讀寫

    對文件進(jìn)行非FileAccess枚舉成員指定的操作會導(dǎo)致拋出異常。此屬性的作用是,基于用戶的權(quán)限級別改變用戶對文件的訪問權(quán)限。

    在FileStream構(gòu)造函數(shù)不使用FileAccess枚舉參數(shù)的版本中,使用默認(rèn)值FileAccess. ReadWrite。

    FileMode枚舉成員如下表所示。使用每個值會發(fā)生什么,取決于指定的文件名是否表示已有的文件。注意,這個表中的項表示創(chuàng)建流時該流指向文件中的位置,下一節(jié)將詳細(xì)討論這個主題。除非特別說明,否則流就指向文件的開頭處。

文件存在

文件不存在

Append

打開文件,流指向文件的末尾處,只能與枚舉FileAccess.Write

創(chuàng)建一個新文件。只能與枚舉


結(jié)合使用

FileAccess.Write 結(jié)合使用

Create

刪除該文件,然后創(chuàng)建新文件

創(chuàng)建新文件

CreateNew

拋出異常

創(chuàng)建新文件

Open

打開文件,流指向文件開頭處

拋出異常

OpenOrCreate

打開文件,流指向文件開頭處

創(chuàng)建新文件

Truncate

打開文件,淸除其內(nèi)容。流指向文件開頭處,保留文件的初始創(chuàng)

建曰期

拋出異常

    File和Filelnfo類都提供了 OpenRead()和OpenWrite()方法,更易于創(chuàng)建FileStream對象。前者打開了只讀訪問的文件,后者只允許寫入文件。這些都提供了快捷方式,因此不必以FileStream構(gòu)造函數(shù)的參數(shù)形式提供所有必要的信息。例如,下面的代碼行打開了用于只讀訪問的Data.txt文件:

    FileStream aFile = File.OpenRead{"Data.txt");

下面的代碼執(zhí)行同樣的功能:

    Filelnfo aFilelnfo = new Filelnfo("Data.txt");

    FileStream aFile = aFilelnfo.OpenRead();


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

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