Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Класс StreamReader

 

Опубликовано: Октябрь 2016

Реализует объект TextReader, который считывает символы из потока байтов в определенной кодировке.

Просмотреть исходный код .NET Framework для этого типа Reference Source.

Пространство имен:   System.IO
Сборка:  mscorlib (в mscorlib.dll)


[SerializableAttribute]
[ComVisibleAttribute(true)]
public class StreamReader : TextReader

ИмяОписание
System_CAPS_pubmethodStreamReader(Stream)

Инициализирует новый экземпляр класса StreamReader для заданного потока.

System_CAPS_pubmethodStreamReader(Stream, Boolean)

Инициализирует новый экземпляр класса StreamReader для указанного потока, используя заданный параметр обнаружения метки порядка следования байтов.

System_CAPS_pubmethodStreamReader(Stream, Encoding)

Инициализирует новый экземпляр класса StreamReader для заданного потока, используя указанную кодировку символов.

System_CAPS_pubmethodStreamReader(Stream, Encoding, Boolean)

Инициализирует новый экземпляр класса StreamReader для заданного потока, используя указанную кодировку символов и параметр обнаружения метки порядка байтов.

System_CAPS_pubmethodStreamReader(Stream, Encoding, Boolean, Int32)

Инициализирует новый экземпляр класса StreamReader для заданного потока, используя указанную кодировку символов, параметр обнаружения метки порядка байтов и размер буфера.

System_CAPS_pubmethodStreamReader(Stream, Encoding, Boolean, Int32, Boolean)

Инициализирует новый экземпляр класса StreamReader для указанного потока на основе заданной кодировки символов, параметра обнаружения меток порядка байтов и размера буфера, а также при необходимости оставляет поток открытым.

System_CAPS_pubmethodStreamReader(String)

Инициализирует новый экземпляр класса StreamReader для указанного имени файла.

System_CAPS_pubmethodStreamReader(String, Boolean)

Инициализирует новый экземпляр класса StreamReader для заданного имени файла, используя указанный параметр обнаружения меток порядка байтов.

System_CAPS_pubmethodStreamReader(String, Encoding)

Инициализирует новый экземпляр класса StreamReader для заданного имени файла, используя указанную кодировку символов.

System_CAPS_pubmethodStreamReader(String, Encoding, Boolean)

Инициализирует новый экземпляр класса StreamReader для заданного имени файла, используя указанную кодировку символов и параметр обнаружения меток порядка байтов.

System_CAPS_pubmethodStreamReader(String, Encoding, Boolean, Int32)

Инициализирует новый экземпляр класса StreamReader для заданного имени файла, используя указанную кодировку символов, параметр обнаружения меток порядка байтов и размер буфера.

ИмяОписание
System_CAPS_pubpropertyBaseStream

Возвращает основной поток.

System_CAPS_pubpropertyCurrentEncoding

Возвращает текущую кодировку символов, используемую текущим объектом StreamReader.

System_CAPS_pubpropertyEndOfStream

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

ИмяОписание
System_CAPS_pubmethodClose()

Закрывает объект StreamReader и основной поток и освобождает все системные ресурсы, связанные с устройством чтения.(Переопределяет TextReader.Close().)

System_CAPS_pubmethodCreateObjRef(Type)

Создает объект, который содержит все необходимые сведения, необходимые для создания прокси-сервер, используемый для связи с удаленным объектом.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodDiscardBufferedData()

Очищает внутренний буфер.

System_CAPS_pubmethodDispose()

Освобождает все ресурсы, используемые объектом TextReader.(Наследуется от TextReader.)

System_CAPS_protmethodDispose(Boolean)

Закрывает основной поток, освобождает неуправляемые ресурсы, используемые StreamReader, и при необходимости освобождает управляемые ресурсы.(Переопределяет TextReader.Dispose(Boolean).)

System_CAPS_pubmethodEquals(Object)

Определяет, равен ли заданный объект текущему объекту.(Наследуется от Object.)

System_CAPS_protmethodFinalize()

Позволяет объекту попытаться освободить ресурсы и выполнить другие операции по очистке перед тем, как объект будет утилизирован сборщиком мусора. (Наследуется от Object.)

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetLifetimeService()

Возвращает объект службы текущее время существования, который управляет политикой времени существования данного экземпляра.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodGetType()

Возвращает объект Type для текущего экземпляра.(Наследуется от Object.)

System_CAPS_pubmethodInitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования данного экземпляра.(Наследуется от MarshalByRefObject.)

System_CAPS_protmethodMemberwiseClone()

Создает неполную копию текущего объекта Object.(Наследуется от Object.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Создает неполную копию текущего MarshalByRefObject объекта.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodPeek()

Возвращает следующий доступный символ, но не использует его.(Переопределяет TextReader.Peek().)

System_CAPS_pubmethodRead()

Выполняет чтение следующего символа из входного потока и перемещает положение символа на одну позицию вперед.(Переопределяет TextReader.Read().)

System_CAPS_pubmethodRead(Char[], Int32, Int32)

Считывает заданное максимальное количество символов из текущего потока в буфер начиная с заданного индекса.(Переопределяет TextReader.Read(Char[], Int32, Int32).)

System_CAPS_pubmethodReadAsync(Char[], Int32, Int32)

Асинхронно считывает указанное максимальное количество символов из текущего потока и записывает данные в буфер, начиная с заданного индекса.(Переопределяет TextReader.ReadAsync(Char[], Int32, Int32).)

System_CAPS_pubmethodReadBlock(Char[], Int32, Int32)

Считывает указанное максимальное количество символов из текущего потока и записывает данные в буфер, начиная с заданного индекса.(Переопределяет TextReader.ReadBlock(Char[], Int32, Int32).)

System_CAPS_pubmethodReadBlockAsync(Char[], Int32, Int32)

Асинхронно считывает указанное максимальное количество символов из текущего потока и записывает данные в буфер, начиная с заданного индекса.(Переопределяет TextReader.ReadBlockAsync(Char[], Int32, Int32).)

System_CAPS_pubmethodReadLine()

Выполняет чтение строки символов из текущего потока и возвращает данные в виде строки.(Переопределяет TextReader.ReadLine().)

System_CAPS_pubmethodReadLineAsync()

Асинхронно выполняет чтение строки символов из текущего потока и возвращает данные в виде строки.(Переопределяет TextReader.ReadLineAsync().)

System_CAPS_pubmethodReadToEnd()

Считывает все символы, начиная с текущей позиции до конца потока.(Переопределяет TextReader.ReadToEnd().)

System_CAPS_pubmethodReadToEndAsync()

Асинхронно считывает все символы, начиная с текущей позиции до конца потока, и возвращает их в виде одной строки.(Переопределяет TextReader.ReadToEndAsync().)

System_CAPS_pubmethodToString()

Возвращает строковое представление текущего объекта.
(Наследуется от Object.)

ИмяОписание
System_CAPS_pubfieldSystem_CAPS_staticNull

Объект StreamReader для пустого потока.

System_CAPS_noteПримечание

Чтобы просмотреть исходный код .NET Framework для этого типа, см. раздел Reference Source. Просмотр исходного кода в Интернете, загружаемом справочнике для автономного просмотра и пошагово источники (включая исправления и обновления) во время отладки; see instructions.

StreamReader разработан для ввода знаков в определенной кодировке, тогда как Stream класс предназначен для ввода и вывода байтов. Используйте StreamReader для чтения строк данных из стандартного текстового файла.

System_CAPS_importantВажно

Этот тип реализует интерфейс IDisposable. После завершения с помощью типа следует освободить его прямо или косвенно. Для удаления типа непосредственно вызвать его Dispose метод tryилиcatch блока. Для удаления его косвенно, использовать языковой конструкции, такие как using (в C#) или Using (в Visual Basic). Дополнительные сведения см. в разделе «Использование объекта, реализует IDisposable» IDisposable разделе интерфейса.

StreamReader по умолчанию используется кодировка UTF-8, если не указано иное, а не значения кодовой страницы ANSI для текущей системы. UTF-8 правильно обрабатывает символы Юникода и предоставляет согласованные результаты в локализованных версиях операционной системы. Если получить текущую кодировку с помощью CurrentEncoding Свойства, значение не является надежным до после первого Read метод, поскольку автоматическое определение кодировки не выполняется до первого вызова Read метод.

По умолчанию StreamReader не является потокобезопасным. В разделе TextReader.Synchronized для потокобезопасную оболочку.

Read(Char[], Int32, Int32) И Write(Char[], Int32, Int32) перегрузки методов чтения и записи число знаков, указанное в count параметр. Они отличаются от BufferedStream.Read и BufferedStream.Write, которые считывают и записывают число байтов, указанное в count параметр. Используйте BufferedStream методы только для чтения и записи элементов массива из целого количества байтов.

System_CAPS_noteПримечание

При чтении из Stream, это более эффективно использовать буфер такого же размера, как и внутренний буфер потока.

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

В следующем примере используется экземпляр StreamReader прочитать текст из файла. Конструктор, используемый в этом примере не поддерживается для использования в Магазин Windows приложений.

using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        try 
        {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("TestFile.txt")) 
            {
                string line;
                // Read and display lines from the file until the end of 
                // the file is reached.
                while ((line = sr.ReadLine()) != null) 
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception e) 
        {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }
}

В следующем примере создается экземпляр StreamReader и вызывает его ReadAsync метод для асинхронного чтения файла.

using System;
using System.IO;
using System.Threading.Tasks;

class Example
{
    public static void Main()
    {
        ReadAndDisplayFilesAsync();
    }

    private async static void ReadAndDisplayFilesAsync()
    {
        String filename = "TestFile1.txt";
        Char[] buffer;

        using (var sr = new StreamReader(filename)) {
            buffer = new Char[(int)sr.BaseStream.Length];
            await sr.ReadAsync(buffer, 0, (int)sr.BaseStream.Length);
        }

        Console.WriteLine(new String(buffer));
    }
}
// The example displays the following output:
//       This is the first line of text in a relatively short file.
//       This is the second line.
//       This is the third line.
//       This is the fourth and final line.

Универсальная платформа Windows
Доступно с 8
.NET Framework
Доступно с 1.1
Переносимая библиотека классов
Поддерживается в: переносимые платформы .NET
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Windows Phone
Доступно с 8.1

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: