Как считывать по нескольку байтов из файла?

209
20 апреля 2017, 13:51

У меня есть файл для чтения(может быть любой). Мне нужно считывать из него определенное количество байт(к примеру 2). Производить над ними операции, и записать в файл, потом считать следующие 2 и так до конца файла. Мои попытки.

        Console.WriteLine("Введите название файла...");
        string file_name = Console.ReadLine();
        string fullPath = Path.GetFullPath(file_name);
        if (!File.Exists(file_name)){
            Console.WriteLine("Такого файла не существует");
            Console.ReadKey();
            return;
        }
        byte[] buff = null;
        FileStream fs = new FileStream(file_name, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);
        long numBytes = new FileInfo(file_name).Length;
        buff = br.ReadBytes((int)numBytes);

Проблема в том, что при больших размерах файла оно просто не помещается в буфер. Как это грамотно сделать через поток? Знаний по языку у меня пока не много, поэтому если можно, то подробнее подскажите.

Заранее благодарю.

Answer 1

Например так:

byte[] buffer = new byte[2];
using (FileStream fs = new FileStream(file_name, FileMode.Open, FileAccess.Read)) {
    int count = 0;
    while ((count = fs.Read(buffer, 0, 2)) > 0) {
        Console.WriteLine(count.ToString());
    }
}
READ ALSO
Как очистить консоль C#?

Как очистить консоль C#?

Каким образом возможно очистить консоль в C#?

620
Kohana Auth Custom Role

Kohana Auth Custom Role

Модуль Auth работает с привязкой к ролям login и adminКак реализовать авторизацию на основании других ролей

241
Авторизация в VK на PHP

Авторизация в VK на PHP

Очень простой (надеюсь) вопросВ php-файл, например, post-запросом приходит логин и пароль

234
Редирект на страницу без расширения на чистом PHP

Редирект на страницу без расширения на чистом PHP

Привет всем! Наверное я много людей уже достал такими вопросами, но все же

222