.NET 4.x Считать с файла массив байтов максимум по 4мб в строке - C#
Формулировка задачи:
Нужно считать массив байтов из файла и превратить в строку.
Вот собственно как я это делаю:
Ну а если файл весит меньше мегабайта то оно дописывает лишнее и файл стает весить 7 или больше мб
Собственно задача:
-Считывать по максимум 4 мб в строку
-Переводить байты в строку
Ну оно реализовано осталось сделать так, чтобы не дописывалось лишнее.
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);
}Решение задачи: «.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());
}
}