FileStream常用的屬性和方法

來源:互聯網
上載者:User

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

  FileStream常用的屬性和方法:

  屬性:

  CanRead 判斷當前流是否支援讀取,返回bool值,True表示可以讀取

  CanWrite 判斷當前流是否支援寫入,返回bool值,True表示可以寫入

  方法:

  Read() 從流中讀取資料,返回位元組數組

  Write() 將位元組塊(位元組數組)寫入該流

  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.關閉檔案流

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.