文件操作
File.ReadAllText(“path”,Encoding.Default);//讀取所有文本返回string
File.ReadAllBytes(“path”);//讀取文件,返回byte[],把文件作為二進制來處理。
l===========================================
File.WriteAllLines(“path”,new string[4] ,Encoding.Default);//將string數組按行寫入文件。
File.WriteAllText(“path”,“string”);//將字符串全部寫入文件
File.WriteAllBytes(“path”,newbyte[5]);//將byte[]全部寫入到文件
File.AppendAllText()//將string追加到文件
FileStream fs=File.OpenRead();//返回只讀的FileStream
FileStream fs=File.OpenWrite();//返回只寫的FileStream
FileStream fs=new FileStream(參數);
Stream(所有流的父類,是一個抽象類。)
文件操作的類都在System.IO.*;
通過FileStream寫入讀取文本文件。對於中文如果每次讀取1個byte會有什么效果?更好的選擇→StreamReader
使用FileStream讀取文本文件。
使用FileStream進行大文件拷貝。
File.ReadAllBytes()與File.WriteAllBytes()進行文件拷貝。(查看內存使用情況)
使用using可以方便的釋放資源(自動調用Dispose方法)
只有實現了IDispose接口的類才能使用using釋放資源
用StreamWriter可以簡化文本類型的Stream的處理
StreamWriter是輔助Stream進行處理的
using (StreamWriter writer = new StreamWriter(stream, encoding))
{
writer.WriteLine("你好");
}
和StreamWriter類似, StreamReader簡化了文本類型的流的讀取。
Stream stream = File.OpenRead("c:/1.txt");
using (StreamReader reader = new StreamReader(stream,encoding))
{
//Console.WriteLine(reader.ReadToEnd());
Console.WriteLine(reader.ReadLine());
}
ReadToEnd用於從當前位置一直讀到最后,內容大的話會占內存;每次調用都往下走,不能無意中調用了兩次
ReadLine讀取一行,如果到了末尾,則返回null。
正數對應的二進制取反 ,再加1就是負數的二進制。
Encoding.Default
System.Text.DBCSCodePageEncoding雙字節字符集。如果輸出EncodingName的話,結果為:簡體中文(gb2312)
Encoding.Default:與操作系統的當前“區域與語言選項”有關。
////如果系統中沒有提供編碼,則可以通過GetEncoding("編碼的額字符串表示")獲得該編碼。
//Encodingencoding=Encoding.GetEncoding("gb2312");
StringBuildersb =newStringBuilder();
EncodingInfo[]infos = System.Text.Encoding.GetEncodings();
for(inti = 0; i < infos.Length; i++)
{
sb.Append(infos[i].CodePage +" "+ infos[i].DisplayName +" "+ infos[i].Name +"\r\n");
}
File.WriteAllText("encodings.txt",sb.ToString());
原文:
http://blog.csdn.net/n1g2q2012/article/details/9380911
類似參考:
http://www.cnblogs.com/zysbk/archive/2012/08/09/2629589.html (推薦,圖文版)