剛開始學習C#,寫一些簡單的控制台應用程序:主要是讀入文件,處理,然後寫入文件。
一直對於File,FileInfo,FileStream,StreamReader的概念和用法都很混亂,今天就了解的總結一下。
概括的說,File,FileInfo,FileStream是用於文件 I/O 的類,StreamReader是用於從流讀取和寫入流的類,使用之前都需using System.IO。
先定義一個TXT文檔路徑: string txtpath = (@"D:C#練習1.txt"); 要讀入這個文檔。
(1)File 提供用於創建、復制、刪除、移動和打開文件的靜態方法,並協助創建 FileStream。
FileStream fs = File.Open(txtpath, FileMode.Open);
File可以直接調用各種方法(Open、Delete、Exists等)
例如: if (File.Exists(txtpath))
{
File.Delete(txtpath);
}
(2)FileInfo 提供用於創建、復制、刪除、移動和打開文件的實例方法,並協助創建 FileStream。
FileInfo fi = new FileInfo(txtpath); //實例化
FileStream fs = fi.Open();
(3)FileStream 支持通過其 Seek 方法隨機訪問文件。默認情況下,FileStream 以同步方式打開文
件,但它也支持異步操作。
利用FileStream 我們可以得到一個文件的Streams,接著就是來讀取。
(4)StreamReader 通過使用 Encoding 進行字符和字節的轉換,從 Streams 中讀取字符。
StreamWriter 通過使用 Encoding 將字符轉換為字節,向 Streams 寫入字符。
StreamReader sr = new StreamReader(fs);
string str = null;
string temp=null;
while((temp=sr.ReadLine())!=null)
{
str+=" "+temp;
}
得到一個字符串,再可以對字符串進行處理。
PS:
TextReader 是 StreamReader 和 StringReader 的抽象基類。抽象 Stream 類的實現用於字節輸入和輸出,而 TextReader 的實現用於 Unicode 字符輸出。
TextWriter 是 StreamWriter 和 StringWriter 的抽象基類。抽象 Stream 類的實現用於字節輸入和輸出,而 TextWriter 的實現用於 Unicode 字符輸出。