3种读文件方法有什么不同?

来源:百度知道 编辑:UC知道 时间:2024/06/15 15:44:07
第一种:
File.ReadAllText(Server.MapPath("~/txt/cn.txt"),Encoding.Default);
第二种:
StreamReader sr = File.OpenText(Server.MapPath("~/txt/cn.txt"));
//打开指定的文件创建一个StreamReader实例
StringBuilder sbstring = new StringBuilder();
//创建一个StringBuilder实例以组合可变的字符串
while (!sr.EndOfStream)
{//循环,条件是如果不是最后一行
sbstring.Append(sr.ReadLine()+"<br>");
//为当前的StringBuilder对象增加一行字符串
}
sr.Close();//关闭StreanReader对象
Label1.Text = sbstring.ToString(); //将字符串赋给Label
第三种:
StringBuilder str = new StringBuilder();
FileStream fs = File.Open(Server.MapPath("~/txt/cn.txt"), FileMode.Open, FileAccess.Read);
//为了实现转码,我们多做一件事,就是申明一个FileStream对象
StreamReader sr = new StreamReader(fs, Encoding.Default);
//实例化一个StreamReader对象,并指明编码方式是我们当前系统默认的(GB2312)
while (!

三种方式本质上没什么不同,用的都是同样的东西。

File.ReadAllText 只能用来读文本,不能做其它事情
而 StreamReader 和 先创建 FileStream 再创建StreamReader 则没什么不同,StreamReader 是一个流读取类,而第二种方法则是类库内部隐含创建了一个文件流而已。

ReadAllText打开一个指定编码,返回string
StreamReader 是一个流文件打开,打开后用StringBuilder装载
File.Open返回的就是FileStream也是一个流文件

他们打开主要不同的就是返回的结果
返回不同的文件形式,在打开时也可以指定编码形式