Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
822 of 1492 menu
◀ ▶

Write

Write у BinaryWriter имеет перегрузки для int, bool, double, string и byte[]. Целые - little-endian: Write(1) даёт байты 1, 0, 0, 0. Write(string) пишет длину в 7-bit, затем UTF-8. Write(byte[]) - сырые байты без префикса длины.

Синтаксис

writer.Write(1); writer.Write("abcde"); writer.Write(byteArray);

Пример

Давайте записать int 1 и проверить байты:

using System; using System.IO; using System.Text; class Program { static void Main() { MemoryStream ms = new MemoryStream(); BinaryWriter writer = new BinaryWriter( ms, Encoding.UTF8, leaveOpen: true); writer.Write(1); byte[] data = ms.ToArray(); Console.WriteLine(data[0]); Console.WriteLine(data[1]); Console.WriteLine(data[2]); Console.WriteLine(data[3]); writer.Dispose(); ms.Dispose(); } }

Результат выполнения кода:

1 0 0 0

Пример

Давайте сравнить строку и массив байт:

using System; using System.IO; using System.Text; class Program { static void Main() { MemoryStream ms = new MemoryStream(); BinaryWriter writer = new BinaryWriter( ms, Encoding.UTF8, leaveOpen: true); writer.Write("abcde"); byte firstString = ms.ToArray()[0]; ms.SetLength(0); writer.Write(new byte[] { 1, 2, 3, 4, 5 }); byte firstArray = ms.ToArray()[0]; Console.WriteLine(firstString); Console.WriteLine(firstArray); writer.Dispose(); ms.Dispose(); } }

Результат выполнения кода:

5 1

Пример

Давайте прочитать массив через ReadBytes:

using System; using System.IO; using System.Text; class Program { static void Main() { MemoryStream ms = new MemoryStream(); BinaryWriter writer = new BinaryWriter( ms, Encoding.UTF8, leaveOpen: true); writer.Write(new byte[] { 1, 2, 3, 4, 5 }); ms.Position = 0; BinaryReader reader = new BinaryReader( ms, Encoding.UTF8, leaveOpen: true); byte[] res = reader.ReadBytes(3); Console.WriteLine(res.Length); reader.Dispose(); writer.Dispose(); ms.Dispose(); } }

Результат выполнения кода:

3

Смотрите также

  • ReadString,
    чтение строки с длиной
  • ReadInt32,
    чтение int little-endian
  • Stream,
    общий поток байтов
  • MemoryStream,
    буфер для проверки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить