Подтвердить что ты не робот

StreamReader против BinaryReader?

Оба StreamReader и BinaryReader могут использоваться для получения данных из двоичного файла (например)

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

В чем разница и когда я должен использовать это?

4b9b3361

Ответ 1

Оба StreamReader и BinaryReader могут использоваться для получения данных из двоичного файла

Ну, StreamReader можно использовать для получения текстовых данных из двоичного представления текста.

BinaryReader может использоваться для получения произвольных двоичных данных. Если некоторые из этих двоичных данных являются представлением текста, это прекрасно - но это не обязательно.

Нижняя строка:

  • Если все ваши данные являются прямым двоичным кодированием текстовых данных, используйте StreamReader.
  • Если вы в принципе получили двоичные данные, которые могут иметь некоторые фрагменты текста, используйте BinaryReader

Так, например, вы не будете пытаться читать файл JPEG с помощью StreamReader.