FileStream常用的屬性與方法總結(jié)
對流進(jìn)行操作時(shí)要引用 using System.IO; 命名空間
FileStream常用的屬性和方法:
屬性:
CanRead 判斷當(dāng)前流是否支持讀取,返回bool值,True表示可以讀取
CanWrite 判斷當(dāng)前流是否支持寫入,返回bool值,True表示可以寫入
方法:
Read() 從流中讀取數(shù)據(jù),返回字節(jié)數(shù)組
Write() 將字節(jié)塊(字節(jié)數(shù)組)寫入該流
Seek() 設(shè)置文件讀取或?qū)懭氲钠鹗嘉恢?/P>
Flush() 清除該流緩沖區(qū),使得所有緩沖的數(shù)據(jù)都被寫入到文件中
Close() 關(guān)閉當(dāng)前流并釋放與之相關(guān)聯(lián)的所有系統(tǒng)資源
文件的訪問方式:(FileAccess)
包括三個(gè)枚舉:
FileAccess.Read(對文件讀訪問)
FileAccess.Write(對文件進(jìn)行寫操作)
FileAccess.ReadWrite(對文件讀或?qū)懖僮鳎?/P>
文件打開模式:(FileMode)包括6個(gè)枚舉
FileMode.Append 打開現(xiàn)有文件準(zhǔn)備向文件追加數(shù)據(jù),只能同F(xiàn)ileAccess.Write一起使用
FileMode.Create 指示操作系統(tǒng)應(yīng)創(chuàng)建新文件,如果文件已經(jīng)存在,它將被覆蓋
FileMode.CreateNew 指示操作系統(tǒng)應(yīng)創(chuàng)建新文件,如果文件已經(jīng)存在,將引發(fā)異常
FileMode.Open 指示操作系統(tǒng)應(yīng)打開現(xiàn)有文件,打開的能力取決于FileAccess所指定的值
FileMode.OpenOrCreate 指示操作系統(tǒng)應(yīng)打開文件,如果文件不存在則創(chuàng)建新文件
FileMode.Truncate 指示操作系統(tǒng)應(yīng)打開現(xiàn)有文件,并且清空文件內(nèi)容
文件共享方式:(FileShare)
FileShare方式是為了避免幾個(gè)程序同時(shí)訪問同一個(gè)文件會(huì)造成異常的情況。
文件共享方式包括四個(gè):
FileShare.None 謝絕共享當(dāng)前文件
FileShare.Read 充許別的程序讀取當(dāng)前文件
FileShare.Write 充許別的程序?qū)懏?dāng)前文件
FileShare.ReadWrite 充許別的程序讀寫當(dāng)前文件
使用FileStream類創(chuàng)建文件流對象:
FileStream(String 文件路徑,F(xiàn)ileMode 文件打開模式)
FileStream(String 文件路徑,F(xiàn)ileMode 文件打開模式,F(xiàn)ileAccess 文件訪問方式)
FileStream(String 文件路徑,F(xiàn)ileMode 文件打開模式,F(xiàn)ileAccess 文件訪問方式,F(xiàn)ileShare 文件共享方式)
例:
//在C盤創(chuàng)建a.txt文件,使用fs流對象對文件進(jìn)行操作,fs的工作模式是新建(FileMode.Create)
FileStream fs=new FileStream(@"c:\a.txt",FileMode.Create);
//在C盤創(chuàng)建a.txt文件,使用fs流對象對文件進(jìn)行操作,fs工作模式是新建(FileMode.Create)文件的訪問模式是寫入(Fileaccess.Write)
FileStream fs=new FileStream(@"c:\a.txt",FileMode.Create,FileAccess.Write);
//在C盤創(chuàng)建a.txt文件,使用fs流對象對文件進(jìn)行操作,fs工作模式是新建(FileMode.Create)文件的訪問模式是寫入(FileAccess.Write)文件的共享模式是謝絕共享(FileShare.None)
FileStream fs=new FileStream(@"c:\a.txt",FileMode.Create,FileAccess.Write,FileShare.None);
使用File類來創(chuàng)建對象:(常用)
自定義打開文件的方式:File.Open(String,F(xiàn)ileMode);
打開文件進(jìn)行讀?。?File.OpenRead(String);
打開文件進(jìn)行寫入: File.OpenWrite(String);
示例如下:
//在C盤新建123.txt文件,使用流對象fs對文件進(jìn)行操作,fs可以行文件內(nèi)容追加操作FileMode.Append
FileStream fs=File.Open(@"c:\123.txt",FileMode.Append);
//在C盤新建123.txt文件,使用流對象fs對文件進(jìn)行操作,fs可以進(jìn)行讀文件File.OpenRead()
FileStream fs=File.OpenRead(@"c:\123.txt");
//在C盤新建123.txt文件,使用流對象fs對文件進(jìn)行操作,fs可以進(jìn)行寫操作File.OpenWrite()
FileStream fs=File.OpenWrite(@"c:\123.txt");
使用File例:
對文件進(jìn)行讀操作:
//新建fs流對象對象產(chǎn)生的路徑是textbox1.text的值,文件的模式是FileMode.OpenOrCreate(可讀可寫)
using (FileStream fs = File.Open(textBox1.Text, FileMode.OpenOrCreate))
{
//新建字節(jié)型數(shù)組,數(shù)組的長度是fs文件對象的長度(后面用于存放文件)
byte[] bt=new byte[fs.Length];
//通過fs對象的Read方法bt得到了fs對象流中的內(nèi)容
fs.Read(bt,0,bt.Length);
//關(guān)閉fs流對象
fs.Close();
//將bt字節(jié)型數(shù)組中的數(shù)據(jù)由Encoding.Default.GetString(bt)方法取出,交給textbox2.text
textBox2.Text = System.Text.Encoding.Default.GetString(bt);
}
對文件進(jìn)行寫入操作:
//新建fs流對象,對象操作的文件路徑在textbox1.text中,fs的操作模式是FileMode.Create
using (FileStream fs = File.Open(textBox1.Text, FileMode.Create))
{
//新建字節(jié)型數(shù)組bt對象,bt對象得到了textbox2.text的Encoding的值
byte[] bt = System.Text.Encoding.Default.GetBytes(textBox2.Text);
//將bt字節(jié)型數(shù)組對象的值寫入到fs流對象中(文件)
fs.Write(bt,0,bt.Length);
//關(guān)閉流對象
fs.Close();
}
注:
對文件的讀寫操多不管代碼有多少,無非就是下面的三步:
1.創(chuàng)建文件讀寫流對象
2.對文件進(jìn)行讀寫
3.關(guān)閉文件流
- SQL Server的FileStream和FileTable深入剖析
- C# FileStream文件讀寫詳解
- C#使用FileStream循環(huán)讀取大文件數(shù)據(jù)的方法示例
- SQL Server 2008中的FileStream介紹
- SQL Server FileStream詳解
- C#流類FileStream學(xué)習(xí)使用筆記
- C# FileStream讀寫的文本操作代碼分析
- c#實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能示例分享
- C#實(shí)現(xiàn)文件斷點(diǎn)續(xù)傳下載的方法
- C# FileStream實(shí)現(xiàn)多線程斷點(diǎn)續(xù)傳
相關(guān)文章
Unity3D實(shí)現(xiàn)鼠標(biāo)控制視角轉(zhuǎn)動(dòng)
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)鼠標(biāo)控制視角轉(zhuǎn)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02C#利用Openxml讀取Excel數(shù)據(jù)實(shí)例
這篇文章主要介紹了C#利用Openxml讀取Excel數(shù)據(jù)的方法,包括使用中的注意點(diǎn)分析及疑難探討,需要的朋友可以參考下2014-09-09c# WPF如何實(shí)現(xiàn)滾動(dòng)顯示的TextBlock
這篇文章主要介紹了c# WPF如何實(shí)現(xiàn)滾動(dòng)顯示的TextBlock,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03