@Rustam

File.WriteAllBytes vs BinaryWriter?

Есть несколько способов написать в файл бинарные данные. Один из них
File.WriteAllBytes (path, buffer);,


другой
BinaryWriter writer = new BinaryWriter (File.OpenWrite (path));<br/>
 writer.Write (buffer);<br/>
 writer.Flush ();



навскидку первый способ выглядит приятнее(в смысле читабельности), но какой из них быстрее?

И каким образом оба способа работают?


Спасибо.
  • Вопрос задан
  • 3699 просмотров
Решения вопроса 1
PashaPash
@PashaPash
Первый — внутри открывает FileStream и пишет в него байты из буффера. WriteAllBytes пишет байты в поток вот такой строчкой:
fs.Write(bytes, 0, bytes.Length);

Второй — вы сами открываете FileStream, зачем-то оборачиваете его в BinaryWriter. BinaryWriter пишет в FileStream примерно так:
OutStream.Write(buffer, 0, buffer.Length);

Разницы — никакой. Только первый метод закрывает файл. А второй — нет, в нем не хватает вызова Dispose.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 янв. 2021, в 20:29
50000 руб./за проект
18 янв. 2021, в 20:26
20000 руб./за проект
18 янв. 2021, в 19:52
70000 руб./за проект