Файл или массив большого размера вывести на экран через буфер маленького размера - C#
Формулировка задачи:
Приветствую!
Суть: нужно продеть слона int[] slon длиной 13467 через игольное ушко byte[] uho = new byte[1024], чтобы часть слона, прошедшая через uho[] была, выведена на экран, например.
Я накидал такой вариант:
Как можно оптимизировать? Изменить?
Предлагайте иные реализации :-)
Главное - слон должен быть большой (вплоть до 200 Мб), толстый, и размер не кратный 2, ухо должно быть не более 8192, и слон должен быть собран весь до последнего байта, ничего не должно потеряться.
Для тех, кто хорошо разбирается в языке, можно попутно разобрать слона int->byte->char || string и обратно (опционально).
Вопрос про производительность открытый.
byte[] buffer = new byte[1024]; // игольное ушко string mystring =""; long a = (mynextByte.Length / buffer.Length) + 1; // кол-во итераций int n = 0; string[] lines = new string[buffer.Length]; do { int k = 0; do { if ((n + k) >= mynextByte.Length) break; lines[k] = mynextByte[n+k].ToString(); mystring += lines[k].ToString(); k++; // внутренний счетчик n++; // внешний счетчик } while (k < buffer.Length); a--; } while (a > 0);
Решение задачи: «Файл или массив большого размера вывести на экран через буфер маленького размера»
textual
Листинг программы
static void Main(string[] args) { var fileStream = new FileStream("огромный файл :)", FileMode.Open); using (var bufferedStream = new BufferedStream(fileStream)) { int value; while ((value = bufferedStream.ReadByte()) != -1) { Console.Write(value); } } Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д