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

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

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

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

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

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

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


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

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

6   голосов , оценка 4.167 из 5
Похожие ответы