StreamReader的VS BinaryReader在?StreamReader的VS Bina

2019-05-13 16:02发布

两者StreamReaderBinaryReader可用于获得来自二进制文件的数据(例如)

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();
                }
            }

有什么区别,我应该何时使用哪种?

Answer 1:

双方的StreamReader及BinaryReader在可以用来从二进制文件中的数据

那么, StreamReader可以用来从文本的二进制表示得到的文本数据。

BinaryReader可用于获取任意的二进制数据。 如果一些二进制数据恰好是文本的表示,这很好 - 但它并没有要。

底线:

  • 如果你的全部数据是文本数据的一个简单的二进制编码,使用StreamReader
  • 如果你已经从根本上得到了可能发生在文本某些部分的二进制数据,使用BinaryReader

因此,例如,你不会试图读取JPEG文件StreamReader



文章来源: StreamReader vs BinaryReader?