StreamReader vs BinaryReader?

.net, binaryreader, c#, file, streamreader

Solution

Both StreamReader and BinaryReader can be used to get data from binary file

Well, `StreamReader` can be used to get text data from a binary representation of text.

`BinaryReader` can be used to get arbitrary binary data. If some of that binary data happens to be a representation of text, that's fine - but it doesn't have to be.

Bottom line:

- If the entirety of your data is a straightforward binary encoding of text data, use `StreamReader`.

- If you've fundamentally got binary data which may happen to have some portions in text, use `BinaryReader`

So for example, you wouldn't try to read a JPEG file with `StreamReader`.

Problem

Both `StreamReader` and `BinaryReader` can be used to get data from binary file ( for example ) 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(); } } ``` What is the difference and when should I use which ?

Original source