C#使用FileStream對(duì)象讀寫文件

在項(xiàng)目開(kāi)發(fā)中經(jīng)常會(huì)涉及到對(duì)文件的讀寫,c# 提供了很多種方式來(lái)對(duì)文件進(jìn)行讀寫操作,今天來(lái)說(shuō)說(shuō)FileStream 對(duì)象。

創(chuàng)新互聯(lián)是一家專業(yè)提供謝通門企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為謝通門眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

FileStream表示在磁盤或網(wǎng)絡(luò)路徑上指向文件的流。一般操作文件都習(xí)慣使用StreamReader 和 StreamWriter,因?yàn)樗鼈儾僮鞯氖亲址麛?shù)據(jù) 。而FileStream 對(duì)象操作的是字節(jié)和字節(jié)數(shù)組。有些操作是必須使用FileStream 對(duì)象執(zhí)行的,如隨機(jī)訪問(wèn)文件中間某點(diǎn)的數(shù)據(jù)。

創(chuàng)建FileStream 對(duì)象有許多不同的方法,這里使用文件名和FileMode枚舉值創(chuàng)建:

一、 讀取文件,記得引用 System.IO 命名空間:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplicationTest
{
 class Program
 {
  static void Main(string[] args)
  {
   //創(chuàng)建需要讀取的數(shù)據(jù)的字節(jié)數(shù)組和字符數(shù)組
   byte[] byteData = new byte[200];
   char[] charData = new char[200];

   //捕獲異常:操作文件時(shí)容易出現(xiàn)異常,最好加上try catch
   FileStream file = null;
   try
   {
    //打開(kāi)一個(gè)當(dāng)前 Program.cs 文件,此時(shí)讀寫文件的指針(或者說(shuō)操作的光標(biāo))指向文件開(kāi)頭
    file = new FileStream(@"..\..\Program.cs", FileMode.Open);
    //讀寫指針從開(kāi)頭往后移動(dòng)10個(gè)字節(jié)
    file.Seek(10, SeekOrigin.Begin);
    //從當(dāng)前讀寫指針的位置往后讀取200個(gè)字節(jié)的數(shù)據(jù)到字節(jié)數(shù)組中
    file.Read(byteData, 0, 200);
   }catch(Exception e)
   {
    Console.WriteLine("讀取文件異常:{0}",e);
   }
   finally
   {
    //關(guān)閉文件流
    if(file !=null) file.Close();
   }
   //創(chuàng)建一個(gè)編碼轉(zhuǎn)換器 解碼器
   Decoder decoder = Encoding.UTF8.GetDecoder();
   //將字節(jié)數(shù)組轉(zhuǎn)換為字符數(shù)組
   decoder.GetChars(byteData, 0, 200, charData, 0);
   Console.WriteLine(charData);
   Console.ReadKey();
  }
  }
}

顯示結(jié)果如下:

C#使用FileStream對(duì)象讀寫文件

二、寫入文件:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplicationTest
{
 class Program
 {
  static void Main(string[] args)
  {
   byte[] byteData;
   char[] charData;
   FileStream file = null;
   try
   {
    //在當(dāng)前啟動(dòng)目錄下的創(chuàng)建 aa.txt 文件
    file = new FileStream("aa.txt", FileMode.Create);
    //將“test write text to file”轉(zhuǎn)換為字符數(shù)組并放入到 charData 中
    charData = "Test write text to file".ToCharArray();
    byteData = new byte[charData.Length];
    //創(chuàng)建一個(gè)編碼器,將字符轉(zhuǎn)換為字節(jié)
    Encoder encoder = Encoding.UTF8.GetEncoder();
    encoder.GetBytes(charData, 0, charData.Length, byteData, 0,true);
    file.Seek(0, SeekOrigin.Begin);
    //寫入數(shù)據(jù)到文件中
    file.Write(byteData, 0, byteData.Length);

   }catch(Exception e)
   {
    Console.WriteLine("寫入文件異常:{0}",e);
   }
   finally
   {
    if (file != null) file.Close();
   }
   
   Console.ReadKey();
  }
 }
}

結(jié)果如下:

C#使用FileStream對(duì)象讀寫文件

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

新聞名稱:C#使用FileStream對(duì)象讀寫文件
文章起源:http://muchs.cn/article0/pgdsio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、軟件開(kāi)發(fā)、用戶體驗(yàn)、網(wǎng)站策劃外貿(mào)建站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)