對FileStream的幾種屬性和方法認識

C#I/O操做

FileStream

FileStream對象表示在磁盤或網絡路徑上指向文件的流。這個類提供了在文件中讀寫字節的方法,使用FileStream可以對對系統上的文件進行讀、寫、打開、關閉等操做。並對其餘與文件相關的操做系統提供句柄操做,如管道,標準輸入和標準輸出。讀寫操做能夠指定爲同步或異步操做。FileStream對輸入輸出進行緩衝,從而提升性能。數組

對流進行操做時要引用 using System.IO; 命名空間網絡

一、FileStream經常使用的屬性和方法:異步

屬性:性能

CanRead 判斷當前流是否支持讀取,返回bool值,True表示能夠讀取spa

CanWrite 判斷當前流是否支持寫入,返回bool值,True表示能夠寫入操作系統

方法:.net

Read(): 從流中讀取數據,返回字節數組;對象

Write():  將字節塊(字節數組)寫入該流;blog

Seek() : 設置文件讀取或寫入的起始位置;資源

Flush():  清除該流緩衝區,使得全部緩衝的數據都被寫入到文件中;

Close() : 關閉當前流並釋放與之相關聯的全部系統資源;

二、文件的訪問方式:(FileAccess)

包括三個枚舉

FileAccess.Read(對文件讀訪問)

FileAccess.Write(對文件進行寫操做)

FileAccess.ReadWrite(對文件讀或寫操做)

三、文件打開模式:(FileMode)包括6個枚舉

FileMode.Append 打開現有文件準備向文件追加數據,只能同FileAccess.Write一塊兒使用

FileMode.Create 指示操做系統應建立新文件,若是文件已經存在,它將被覆蓋

FileMode.CreateNew 指示操做系統應建立新文件,若是文件已經存在,將引起異常

FileMode.Open 指示操做系統應打開現有文件,打開的能力取決於FileAccess所指定的值

FileMode.OpenOrCreate 指示操做系統應打開文件,若是文件不存在則建立新文件

FileMode.Truncate 指示操做系統應打開現有文件,而且清空文件內容

文件共享方式:(FileShare)

FileShare方式是爲了不幾個程序同時訪問同一個文件會形成異常的狀況。

四、文件共享方式包括四個:

FileShare.None 謝絕共享當前文件

FileShare.Read 充許別的程序讀取當前文件

FileShare.Write 充許別的程序寫當前文件

FileShare.ReadWrite 充許別的程序讀寫當前文件

使用FileStream類建立文件流對象:

FileStream(String 文件路徑,FileMode 文件打開模式)

FileStream(String 文件路徑,FileMode 文件打開模式,FileAccess 文件訪問方式)

FileStream(String 文件路徑,FileMode 文件打開模式,FileAccess 文件訪問方式,FileShare 文件共享方式)

例:

//在C盤建立a.txt文件,使用fs流對象對文件進行操做,fs的工做模式是新建(FileMode.Create)

FileStream fs=new FileStream(@"c:\a.txt",FileMode.Create);

//在C盤建立a.txt文件,使用fs流對象對文件進行操做,fs工做模式是新建(FileMode.Create)文件的訪問模式是寫入(Fileaccess.Write)

FileStream fs=new FileStream(@"c:\a.txt",FileMode.Create,FileAccess.Write);

//在C盤建立a.txt文件,使用fs流對象對文件進行操做,fs工做模式是新建(FileMode.Create)文件的訪問模式是寫入(FileAccess.Write)文件的共享模式是謝絕共享(FileShare.None)

FileStream fs=new FileStream(@"c:\a.txt",FileMode.Create,FileAccess.Write,FileShare.None);

使用File類來建立對象:(經常使用)

自定義打開文件的方式:File.Open(String,FileMode);

打開文件進行讀取: File.OpenRead(String);

打開文件進行寫入: File.OpenWrite(String);

示例以下:

//在C盤新建123.txt文件,使用流對象fs對文件進行操做,fs能夠行文件內容追加操做FileMode.Append

FileStream fs=File.Open(@"c:\123.txt",FileMode.Append);

//在C盤新建123.txt文件,使用流對象fs對文件進行操做,fs能夠進行讀文件File.OpenRead()

FileStream fs=File.OpenRead(@"c:\123.txt");

//在C盤新建123.txt文件,使用流對象fs對文件進行操做,fs能夠進行寫操做File.OpenWrite()

FileStream fs=File.OpenWrite(@"c:\123.txt");

使用File例:

對文件進行讀操做:

//新建fs流對象對象產生的路徑是textbox1.text的值,文件的模式是FileMode.OpenOrCreate(可讀可寫)

using (FileStream fs = File.Open(textBox1.Text, FileMode.OpenOrCreate))
{

//新建字節型數組,數組的長度是fs文件對象的長度(後面用於存放文件)
byte[] bt=new byte[fs.Length];

//經過fs對象的Read方法bt獲得了fs對象流中的內容
fs.Read(bt,0,bt.Length);

//關閉fs流對象
fs.Close();

//將bt字節型數組中的數據由Encoding.Default.GetString(bt)方法取出,交給textbox2.text
textBox2.Text = System.Text.Encoding.Default.GetString(bt);
}

對文件進行寫入操做:

//新建fs流對象,對象操做的文件路徑在textbox1.text中,fs的操做模式是FileMode.Create

using (FileStream fs = File.Open(textBox1.Text, FileMode.Create))
{

//新建字節型數組bt對象,bt對象獲得了textbox2.text的Encoding的值
byte[] bt = System.Text.Encoding.Default.GetBytes(textBox2.Text);

//將bt字節型數組對象的值寫入到fs流對象中(文件)
fs.Write(bt,0,bt.Length);

//關閉流對象
fs.Close();
}

注:

對文件的讀寫操多無論代碼有多少,無非就是下面的三步:

1.建立文件讀寫流對象

2.對文件進行讀寫

3.關閉文件流--------------------- 轉載:https://blog.csdn.net/liu1121655792/article/details/61192588?utm_source=copy

相關文章
相關標籤/搜索