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類是一次性的將文件進行讀取和寫入,如果文件是比較小的化,這無疑是對文件讀寫的效率進行提高,但是如果文件過大的話,會造成系統內存消耗過大,甚至內存溢出。
原文地址:http://www.cnblogs.com/Yanggulin/p/3769070.html?utm_source=tuicool&utm_medium=referral

