C#IO流檔案操作

來源:互聯網
上載者:User

標籤:bsp   copy   中文   異常   資料轉送   讀寫   建構函式   pat   一個   

檔案流建立檔案流

讀寫檔案的第一步就是建立檔案流,流是一個用於資料轉送的個對象,它是FileStream類型,在建立一個檔案流是需要在他的構造中指定參數

文法:

FileStream 檔案流對象=new FileStream( String filePath,FileMode fileMode);

其中filePath用於指定要操作的檔案,fileMode用於指定檔案的開啟檔案,它是一個枚舉類型,

fileMode的常用成員如下:

  • Create:用指定的名稱建立一個檔案,如果檔案已存在則覆蓋原有的檔案
  • CreateNew:建立一個檔案,如果檔案已存在會報異常提示檔案已存在
  • Open:開啟一個檔案,使用這個枚舉是檔案必須已存在,否則會報異常
  • OpenOrCreate:與Open成員類似,如果檔案不存在則用指定的名稱建立一個檔案並開啟它
  • Appen:開啟現有檔案,並在末尾追加新的內容。

小提示:“\”在C#中表示轉譯,所以我們在寫檔案路徑是不能直接以這樣的形式寫(“D:\files”),我們可以在“”號的前面加一個@符號來取消轉譯,也可以用”\\”來代替“\”

檔案讀寫器

建立檔案流之後,我們要建立讀取器或者寫入器,StreamWrite被稱為寫入器只要將建立好的檔案流傳入就可以建立它的執行個體

StreamWriter sw=New StreamWriter(檔案流對象);

建立好寫入器之後我們就可以調用他的方法向檔案類檔案流,其主要方法如下:

  • StreamWriter.Write():用於寫入流,這個流是我們建立好的流
  • StreamWriter.WriteLine():用於寫入一行資料,寫入某些資料後跟分行符號
  • StreamWriter.Close():用於關閉寫入器

注意:當寫入器使用完畢後一定要調用Close()方法關閉寫入器,否則會發生要寫的內容無法寫入檔案的情況。

StreamReader讀取器

StreamReader主要用於讀取流中的資料,它主要包含以下方法:

  • StreamReader.ReadLIne():讀取檔案流中的一行資料,並返回字串
  • StreamReader.ReadToEnd():從當前位置讀到末尾,返回字串
  • StreamReader.Close();用於關閉讀取器。
解決亂碼問題

用StreamReader讀取檔案中的中文文本,有事會出現亂碼問題。這並不是C#語言的問題,有可能是因為編碼格式的問題。在讀取檔案是指定對應的編碼格式已解決亂碼問題。

如:StreamReader myfil=new StreamReader(檔案流對象,Encoding.Default);

Encoding的靜態成員指定編碼格式。如:

  • Default表示擷取作業系統當前的編碼格式
  • UTF-8表示擷取UTF-8格式的編碼
檔案和目錄操作File和Directory類

File類的常用方法

傳回值類型 方法名稱 說明
bool Exists(string path) 用於檢查指定檔案是否存在
void Copy(string sourceFilePath,string destinationFilePath) 將指定路徑的原檔案中的內容複寫到目標檔案中,如果目標檔案不存在,則在指定路徑中建立一個檔案
void Move(string sourceFilePath,string  destFileName) 將制定問價移動到一個新的路徑
void Delete(string path) 刪除指定的檔案,如果指定的檔案不存在,則不引發異常

File類對檔案進行操作而Directory類對目錄進行操作(檔案夾)

Directory類的常用方法

傳回值類型 方法名稱 說明
bool Exists(string path) 用於檢查指定檔案夾在磁碟上是否存在
void Move(string sourceDirName,string destDirName) 用於將檔案或目錄檔案及其內容移到新位置
void Delete(string path,bool recursive) 刪除指定目錄,如果recursive值為true,則刪除子目錄中的所有目錄內容
靜態類和靜態方法

靜態類只含有靜態方法,不能使用new關鍵字建立靜態類的執行個體。

靜態類與非靜態類的區別

靜態類 非靜態類
用static修飾 不用static修飾
只包含靜態成員 可以包含靜態成員
不可以包含執行個體成員 可以包含執行個體成員
使用類名調用靜態成員 使用執行個體對象調用非靜態成員
不能被執行個體化 可以被執行個體化
不能包含執行個體建構函式 包含執行個體建構函式

C#IO流檔案操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.