Задать вопрос
@Rustam

File.WriteAllBytes vs BinaryWriter?

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


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



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

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


Спасибо.
  • Вопрос задан
  • 3870 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine: тариф Базовый
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Решения вопроса 1
PashaPash
@PashaPash
Первый — внутри открывает FileStream и пишет в него байты из буффера. WriteAllBytes пишет байты в поток вот такой строчкой:
fs.Write(bytes, 0, bytes.Length);

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

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

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

Похожие вопросы
СПЕЦПО Санкт-Петербург
от 180 000 до 310 000 ₽
Uniscan Research Новосибирск
от 140 000 до 200 000 ₽
Базис-Центр Коломна
от 70 000 до 500 000 ₽