.NET 4.x Считать с файла массив байтов максимум по 4мб в строке - C#

Узнай цену своей работы

Формулировка задачи:

Нужно считать массив байтов из файла и превратить в строку. Вот собственно как я это делаю:
Листинг программы
  1. using (StreamWriter file = new StreamWriter(path + ".elmanz", true))
  2. using (var fileIn = File.Open(path, FileMode.Open, FileAccess.Read))
  3. {
  4. var buff = new byte[4 * 1024 * 1024];
  5. int readed = 0;
  6. bool flag;
  7. do
  8. {
  9. flag = (readed = fileIn.Read(buff, 0, buff.Length)) >= buff.Length;
  10. StringBuilder hex = new StringBuilder(buff.Length * 2);
  11. foreach (byte b in buff) hex.AppendFormat("{0:x2}", b);
  12. file.WriteLine(hex.ToString());
  13. } while (flag);
  14. }
Ну а если файл весит меньше мегабайта то оно дописывает лишнее и файл стает весить 7 или больше мб Собственно задача: -Считывать по максимум 4 мб в строку -Переводить байты в строку Ну оно реализовано осталось сделать так, чтобы не дописывалось лишнее.

Решение задачи: «.NET 4.x Считать с файла массив байтов максимум по 4мб в строке»

textual
Листинг программы
  1. using (StreamWriter file = new StreamWriter(path + ".elmanz", true))
  2. using (var fileIn = File.Open(path, FileMode.Open, FileAccess.Read))
  3. {
  4.     var buff = new byte[4 * 1024 * 1024];
  5.     StringBuilder hex = new StringBuilder(buff.Length * 2);
  6.  
  7.     for(;;)
  8.     {
  9.         int bytesRead = fileIn.Read(buff, 0, buff.Length);
  10.         if (bytesRead == 0) break;
  11.         hex.Length = 0;
  12.         for (int i=0; i<bytesRead; i++) hex.AppendFormat("{0:x2}", buff[i]);
  13.         file.WriteLine(hex.ToString());
  14.     }
  15. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы