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

Метод Read

StreamReader.Read без аргументов возвращает int: код символа или -1 в конце. Перегрузка с char[] возвращает число прочитанных символов. Строки удобнее снимать через ReadLine. Есть ReadAsync.

Синтаксис

int code = reader.Read(); int count = reader.Read(buffer, index, count);

Пример

Давайте прочитаем первый символ "abcde":

using System; using System.IO; using System.Text; class Program { static void Main() { var ms = new MemoryStream(); using (var w = new StreamWriter( ms, new UTF8Encoding(false), 1024, leaveOpen: true)) { w.Write("abcde"); } ms.Position = 0; using var reader = new StreamReader(ms, Encoding.UTF8); int res = reader.Read(); Console.WriteLine(res); } }

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

97

Пример

Давайте прочитаем три символа в массив:

using System; using System.IO; using System.Text; class Program { static void Main() { var ms = new MemoryStream(); using (var w = new StreamWriter( ms, new UTF8Encoding(false), 1024, leaveOpen: true)) { w.Write("abcde"); } ms.Position = 0; using var reader = new StreamReader(ms, Encoding.UTF8); char[] buf = new char[5]; int res = reader.Read(buf, 0, 3); Console.WriteLine(res); } }

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

3

Пример

Давайте дочитаем до конца - вернётся -1:

using System; using System.IO; using System.Text; class Program { static void Main() { var ms = new MemoryStream(); using (var w = new StreamWriter( ms, new UTF8Encoding(false), 1024, leaveOpen: true)) { w.Write("a"); } ms.Position = 0; using var reader = new StreamReader(ms, Encoding.UTF8); reader.Read(); int res = reader.Read(); Console.WriteLine(res); } }

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

-1

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

  • метод Peek,
    который смотрит символ без сдвига
  • метод ReadToEnd,
    который читает остаток целиком
  • StreamReader,
    класс, где объявлен Read
  • MemoryStream,
    источник байтов в примерах
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить