Прочитать на английском

Поделиться через


BinaryReader.ReadChar Метод

Определение

Считывает следующий знак из текущего потока и изменяет текущую позицию в потоке в соответствии с используемым значением Encoding и конкретным знаком в потоке, чтение которого выполняется в настоящий момент.

public virtual char ReadChar ();

Возвращаемое значение

Символ, считанный из текущего потока.

Исключения

Достигнут конец потока.

Поток закрыт.

Ошибка ввода/вывода.

Выполнено чтение символа-заместителя.

Примеры

В следующем примере кода показано, как считывать и записывать данные, используя память в качестве резервного хранилища.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i = 0;
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        for(i = 0; i < invalidPathChars.Length; i++)
        {
            binWriter.Write(invalidPathChars[i]);
        }

        // Create the reader using the same MemoryStream
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        char[] memoryData =
            new char[memStream.Length - memStream.Position];
        for(i = 0; i < memoryData.Length; i++)
        {
            memoryData[i] = binReader.ReadChar();
        }
        Console.WriteLine(memoryData);
    }
}

Комментарии

ReadChar Если метод пытается прочитать суррогатный символ в потоке, возникнет исключение, а позиция в потоке будет расширена. Позиция восстанавливается в исходном расположении до ReadChar вызова, если поток доступен для поиска. Однако, если поток не виден, позиция не будет исправлена. Если в потоке можно ожидать суррогатных символов, используйте ReadChars вместо него метод .

Из-за конфликтов форматирования данных не рекомендуется использовать этот метод со следующими кодировками:

  • UTF-7

  • ISO-2022-JP

  • ISCII

Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел