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

ReadString

ReadString у BinaryReader ожидает формат Write(string): сначала длина в 7-bit кодировке, затем UTF-8. Для "abcde" первый байт потока - 5, а не код буквы "a".

Синтаксис

string text = reader.ReadString();

Пример

Давайте прочитаем строку после Write("abcde"):

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"); ms.Position = 0; BinaryReader reader = new BinaryReader( ms, Encoding.UTF8, leaveOpen: true); string res = reader.ReadString(); Console.WriteLine(res); reader.Dispose(); writer.Dispose(); ms.Dispose(); } }

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

"abcde"

Пример

Давайте проверим первый байт длины:

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[] data = ms.ToArray(); Console.WriteLine(data[0]); writer.Dispose(); ms.Dispose(); } }

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

5

Пример

Давайте прочитаем две строки подряд:

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"); writer.Write("12345"); ms.Position = 0; BinaryReader reader = new BinaryReader( ms, Encoding.UTF8, leaveOpen: true); string first = reader.ReadString(); string second = reader.ReadString(); Console.WriteLine(first); Console.WriteLine(second); reader.Dispose(); writer.Dispose(); ms.Dispose(); } }

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

"abcde" "12345"

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

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