C#I/O操作
FileStream
FileStream物件表示在磁盤或網路路徑上指向檔案的流,這個類提供了在檔案中讀寫位元組的方法,使用FileStream能夠對對系統上的檔案進行讀、寫、打開、關閉等操作,并對其他與檔案相關的作業系統提供句柄操作,如管道,標準輸入和標準輸出,讀寫操作可以指定為同步或異步操作,FileStream對輸入輸出進行緩沖,從而提高性能,
對流進行操作時要參考 using System.IO; 命名空間
1、FileStream常用的屬性和方法:
屬性:
CanRead 判斷當前流是否支持讀取,回傳bool值,True表示可以讀取
CanWrite 判斷當前流是否支持寫入,回傳bool值,True表示可以寫入
方法:
Read(): 從流中讀取資料,回傳位元組陣列;
Write(): 將位元組塊(位元組陣列)寫入該流;
Seek() : 設定檔案讀取或寫入的起始位置;
Flush(): 清除該流緩沖區,使得所有緩沖的資料都被寫入到檔案中;
Close() : 關閉當前流并釋放與之相關聯的所有系統資源;
2、檔案的訪問方式:(FileAccess)
包括三個列舉:
FileAccess.Read(對檔案讀訪問)
FileAccess.Write(對檔案進行寫操作)
FileAccess.ReadWrite(對檔案讀或寫操作)
3、檔案打開模式:(FileMode)包括6個列舉
FileMode.Append 打開現有檔案準備向檔案追加資料,只能同FileAccess.Write一起使用
FileMode.Create 指示作業系統應創建新檔案,如果檔案已經存在,它將被覆寫
FileMode.CreateNew 指示作業系統應創建新檔案,如果檔案已經存在,將引發例外
FileMode.Open 指示作業系統應打開現有檔案,打開的能力取決于FileAccess所指定的值
FileMode.OpenOrCreate 指示作業系統應打開檔案,如果檔案不存在則創建新檔案
FileMode.Truncate 指示作業系統應打開現有檔案,并且清空檔案內容
檔案共享方式:(FileShare)
FileShare方式是為了避免幾個程式同時訪問同一個檔案會造成例外的情況,
4、檔案共享方式包括四個:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/24035.html
標籤:C#
上一篇:c#發布補丁
