Блоковая запись в файл битов - C#
Формулировка задачи:
Привет! Помогите, пожалуйста, переделать немного код. Нужно чтобы рандомные числа и запись в файл происходила блоками, а не побайтно. Знаю, что есть функции NextBytes и .Write, но не могу понять как их применить. (13 и 18 строки)
// Создаем экземпляр класса Random для генерации псевдослучайных чисел. var rand = new Random(); // Цикл перезаписи файла. for (int i = 0; i < 7; i++) { byte mask = 0; // В соответствии с алгоритмом маска на первой итерации == #FF, на второй == #00, // в пяти следующий псевдослучайному числу. if (i == 0) mask = 0xFF; else if (i == 1) mask = 0x00; else mask = rand.NextBytes(0, 255); while (streamWriter.Position < streamWriter.Length) { // Пишем в поток по-байтно соответственно итерации цикла битовую маску. streamWriter.WriteByte(mask); }
Решение задачи: «Блоковая запись в файл битов»
textual
Листинг программы
// System.IO.FileStream /// <summary>Запись байта в текущую позицию в потоке файла.</summary> /// <param name="value">Байт, который необходимо записать в поток. </param> /// <exception cref="T:System.ObjectDisposedException">Поток закрыт. </exception> /// <exception cref="T:System.NotSupportedException">Этот поток не поддерживает запись. </exception> /// <filterpriority>1</filterpriority> [SecuritySafeCritical] public override void WriteByte(byte value) { if (this._handle.IsClosed) { __Error.FileNotOpen(); } if (this._writePos == 0) { if (!this.CanWrite) { __Error.WriteNotSupported(); } if (this._readPos < this._readLen) { this.FlushRead(); } this._readPos = 0; this._readLen = 0; if (this._buffer == null) { this._buffer = new byte[this._bufferSize]; } } if (this._writePos == this._bufferSize) { this.FlushWrite(false); } this._buffer[this._writePos] = value; this._writePos++; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д