1、FileStream類的讀寫操作
FileStream類可以對任意類型的文件進行讀取操作,而且我們也可以按照需要指定每一次讀取字節長度,以此減少內存的消耗,提高讀取效率。
代碼實例:
//創建文件讀取對象 using(FileStream fileReader=new FileStream (文件的物理路徑,FileMode.Open)) { //創建文件寫入對象 using(FileStream fileWrite=new FileStream (需要保存的文件物理路徑+文件后綴名,FileMode.Create)) { //指定文件一次讀取時的字節長度 byte[] by=new byte [1024*1024*10]; int count = 0; while (true) { //將文件轉換為二進制數據保存到內存中,同時返回讀取字節的長度 count = fileReader.Read(by, 0, by.Length); if (count == 0)//文件是否全部轉換為二進制數據 { break; } //將二進制數據轉換為文件對象並保存到指定的物理路徑中 fileWrite.Write(by, 0, count); } MessageBox.Show("OK"); } }
2、SteamWriter類/StreamReader類的讀寫操作
StreamWriter/SteamReader的特點是,它只能對文本文件進行讀寫操作,可以一行一行的寫入和讀取。
代碼實例:
static void Main(string[] args) { //創建文本文件讀取對象 using (StreamReader s = File.OpenText(文本文件的物理路徑)) { string read = null; while ((read = s.ReadLine()) != null) { Console.WriteLine(read); } } }
3、File類的文件讀取操作特點
File類它是一個靜態類,這意味着我們不可以通過創建file類對象來對文件進行讀寫操作。當我們通過反編譯工具來查看file類的那些靜態方法時,我們可以發現,在這個類里面的方法封裝了可以執行文件讀寫操作的對象,例如:Filestream,StreamWriter/StreamReader。這也說明了當我們通過調用File類的靜態方法去執行任何文件的讀寫操作時,實際上是在該靜態方法中創建了FileStream對象,並通過它來執行文件的讀寫操作。例如:File類的靜態方法Create()
public static FileStream Create(string path);
同樣的在對文本文件進行讀寫操作時也是調用了StreamWriter/StreamReader對象實現的。例如:
public static StreamWriter AppendText(string path);
File類是一次性的將文件進行讀取和寫入,如果文件是比較小的化,這無疑是對文件讀寫的效率進行提高,但是如果文件過大的話,會造成系統內存消耗過大,甚至內存溢出。