文件操作
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 +" ");
}
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 (推荐,图文版)