【发布时间】:2012-05-08 09:29:24
【问题描述】:
StreamReader和BinaryReader都可以用来从二进制文件中获取数据(例如)
二进制读取器:
using (FileStream fs = File.Open(@"c:\1.bin",FileMode.Open))
{
byte[] data = new BinaryReader(fs).ReadBytes((int)fs.Length);
Encoding.getstring....
}
StreamReader:
using (FileStream fs = File.Open(@"c:\1.bin",FileMode.Open))
{
using (StreamReader sr = new StreamReader(fs,Encoding.UTF8))
{
var myString=sr.ReadToEnd();
}
}
有什么区别,我应该什么时候使用 which ?
【问题讨论】:
-
一个适合文本文件,另一个适合二进制文件?正如您在示例代码中所隐瞒的那样。
-
@Adam Houldsworth utf8 字符串也可以包含二进制数据。
-
是的,但大概编码为 UTF-8 字符串...所以本质上是文本。
-
@AdamHouldsworth 不是 utf8 字符串可以保存任何信息吗?
-
@RoyiNamir “utf8 字符串可以包含二进制数据” - 你认为“二进制数据”是什么?
标签: c# .net file streamreader binaryreader