StreamReader Klasa

Definicja

Implementuje element TextReader , który odczytuje znaki ze strumienia bajtów w określonym kodowaniu.

public ref class StreamReader : System::IO::TextReader
public class StreamReader : System.IO.TextReader
[System.Serializable]
public class StreamReader : System.IO.TextReader
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StreamReader : System.IO.TextReader
type StreamReader = class
    inherit TextReader
[<System.Serializable>]
type StreamReader = class
    inherit TextReader
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamReader = class
    inherit TextReader
Public Class StreamReader
Inherits TextReader
Dziedziczenie
StreamReader
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie użyto wystąpienia do StreamReader odczytania tekstu z pliku. Konstruktor używany w tym przykładzie nie jest obsługiwany do użycia w aplikacjach ze Sklepu Windows.

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      // Create an instance of StreamReader to read from a file.
      StreamReader^ sr = gcnew StreamReader( "TestFile.txt" );
      try
      {
         String^ line;
         
         // Read and display lines from the file until the end of 
         // the file is reached.
         while ( line = sr->ReadLine() )
         {
            Console::WriteLine( line );
         }
      }
      finally
      {
         if ( sr )
            delete (IDisposable^)sr;
      }
   }
   catch ( Exception^ e ) 
   {
      // Let the user know what went wrong.
      Console::WriteLine( "The file could not be read:" );
      Console::WriteLine( e->Message );
   }
}
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);
        }
    }
}
Imports System.IO

Class Test
    Public Shared Sub Main()
        Try
            ' Create an instance of StreamReader to read from a file.
            Dim sr As StreamReader = New StreamReader("TestFile.txt")
            Dim line As String
            ' Read and display the lines from the file until the end 
            ' of the file is reached.
            Do
                line = sr.ReadLine()
                Console.WriteLine(Line)
            Loop Until line Is Nothing
            sr.Close()
        Catch E As Exception
            ' Let the user know what went wrong.
            Console.WriteLine("The file could not be read:")
            Console.WriteLine(E.Message)
        End Try
    End Sub
End Class

Poniższy przykład tworzy wystąpienie StreamReader obiektu i wywołuje jego ReadAsync metodę w celu odczytu pliku asynchronicznie.

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

class Example
{
    static async Task Main()
    {
        await ReadAndDisplayFilesAsync();
    }

    static async Task 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.
Imports System.IO
Imports System.Threading.Tasks

Module Example
    Public Sub Main()
        ReadAndDisplayFilesAsync()
    End Sub

    Private Async Sub ReadAndDisplayFilesAsync()
        Dim filename As String = "TestFile1.txt"
        Dim buffer() As Char
        
        Using sr As New StreamReader(filename)
            ReDim buffer(CInt(sr.BaseStream.Length))
            Await sr.ReadAsync(buffer, 0, CInt(sr.BaseStream.Length))
        End Using

        Console.WriteLine(New String(buffer))
    End Sub
End Module
' 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.

Uwagi

StreamReader jest przeznaczony do wprowadzania znaków w określonym kodowaniu, natomiast Stream klasa jest przeznaczona do danych wejściowych i wyjściowych bajtów. Służy StreamReader do odczytywania wierszy informacji ze standardowego pliku tekstowego.

Ważne

Ten typ implementuje IDisposable interfejs. Po zakończeniu korzystania z typu należy go usunąć bezpośrednio lub pośrednio. Aby usunąć typ bezpośrednio, wywołaj metodę Disposetry/catch w bloku. Aby usunąć go pośrednio, użyj konstrukcji językowej, takiej jak using (w języku C#) lub Using (w Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję "Using an Object that Implements IDisposable" (Używanie obiektu implementujące protokół IDisposable) w temacie interfejsu IDisposable .

StreamReader wartość domyślna kodowania UTF-8, chyba że określono inaczej, zamiast domyślnej strony kodowej ANSI dla bieżącego systemu. UtF-8 obsługuje poprawnie znaki Unicode i zapewnia spójne wyniki na zlokalizowanych wersjach systemu operacyjnego. Jeśli otrzymujesz bieżące kodowanie znaków przy użyciu CurrentEncoding właściwości, wartość nie jest niezawodna dopiero po pierwszej Read metodzie, ponieważ kodowanie automatycznego wykrywania nie jest wykonywane, dopóki pierwsze wywołanie Read metody nie zostanie wykonane.

Domyślnie StreamReader element nie jest bezpieczny wątkiem. Zobacz, aby zapoznać się TextReader.Synchronized z otoką bezpieczną wątkowo.

Metoda Read(Char[], Int32, Int32) i Write(Char[], Int32, Int32) przeciąża odczyt i zapis liczby znaków określonych przez count parametr . Należy je odróżnić od BufferedStream.Read i BufferedStream.Write, które odczytują i zapisują liczbę bajtów określonych przez count parametr . BufferedStream Użyj metod tylko do odczytywania i zapisywania całkowitej liczby elementów tablicy bajtów.

Uwaga

Podczas odczytywania z elementu Streamjest bardziej wydajne użycie buforu o takim samym rozmiarze jak wewnętrzny bufor strumienia.

Aby uzyskać listę typowych zadań we/wy, zobacz Typowe zadania we/wy.

Konstruktory

StreamReader(Stream)

Inicjuje StreamReader nowe wystąpienie klasy dla określonego strumienia.

StreamReader(Stream, Boolean)

Inicjuje StreamReader nowe wystąpienie klasy dla określonego strumienia z wybraną opcją wykrywania znacznika kolejności bajtów.

StreamReader(Stream, Encoding)

Inicjuje StreamReader nowe wystąpienie klasy dla określonego strumienia z określonym kodowaniem znaków.

StreamReader(Stream, Encoding, Boolean)

Inicjuje StreamReader nowe wystąpienie klasy dla określonego strumienia z określonym kodowaniem znaków i opcją wykrywania znacznika kolejności bajtów.

StreamReader(Stream, Encoding, Boolean, Int32)

Inicjuje nowe wystąpienie StreamReader klasy dla określonego strumienia z określonym kodowaniem znaków, opcją wykrywania znacznika kolejności bajtów i rozmiarem buforu.

StreamReader(Stream, Encoding, Boolean, Int32, Boolean)

Inicjuje nowe wystąpienie StreamReader klasy dla określonego strumienia na podstawie określonego kodowania znaków, opcji wykrywania znacznika kolejności bajtów i rozmiaru buforu, a opcjonalnie pozostawia otwarty strumień.

StreamReader(String)

Inicjuje StreamReader nowe wystąpienie klasy dla określonej nazwy pliku.

StreamReader(String, Boolean)

Inicjuje StreamReader nowe wystąpienie klasy dla określonej nazwy pliku z wybraną opcją wykrywania znacznika kolejności bajtów.

StreamReader(String, Encoding)

Inicjuje StreamReader nowe wystąpienie klasy dla określonej nazwy pliku z określonym kodowaniem znaków.

StreamReader(String, Encoding, Boolean)

Inicjuje nowe wystąpienie StreamReader klasy dla określonej nazwy pliku z określonym kodowaniem znaków i opcją wykrywania znacznika kolejności bajtów.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

Inicjuje nowe wystąpienie StreamReader klasy dla określonej ścieżki pliku z określonym kodowaniem znaków, opcją wykrywania znacznika kolejności bajtów i skonfigurowanym za pomocą określonego FileStreamOptions obiektu.

StreamReader(String, Encoding, Boolean, Int32)

Inicjuje nowe wystąpienie StreamReader klasy dla określonej nazwy pliku z określonym kodowaniem znaków, opcją wykrywania znacznika kolejności bajtów i rozmiarem buforu.

StreamReader(String, FileStreamOptions)

Inicjuje nowe wystąpienie StreamReader klasy dla określonej ścieżki pliku przy użyciu domyślnego kodowania, umożliwiając wykrywanie znaków kolejności bajtów na początku pliku i skonfigurowane przy użyciu określonego FileStreamOptions obiektu.

Pola

Null

StreamReader Obiekt wokół pustego strumienia.

Właściwości

BaseStream

Zwraca strumień bazowy.

CurrentEncoding

Pobiera bieżące kodowanie znaków używane przez bieżący StreamReader obiekt.

EndOfStream

Pobiera wartość wskazującą, czy bieżąca pozycja strumienia znajduje się na końcu strumienia.

Metody

Close()

StreamReader Zamyka obiekt i źródłowy strumień oraz zwalnia wszystkie zasoby systemowe skojarzone z czytnikiem.

Close()

Zamyka element TextReader i zwalnia wszystkie zasoby systemowe skojarzone z programem TextReader.

(Odziedziczone po TextReader)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
DiscardBufferedData()

Czyści bufor wewnętrzny.

Dispose()

Zwalnia wszystkie zasoby używane przez TextReader obiekt.

(Odziedziczone po TextReader)
Dispose(Boolean)

Zamyka strumień źródłowy, zwalnia niezarządzane zasoby używane przez StreamReaderprogram i opcjonalnie zwalnia zarządzane zasoby.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
Peek()

Zwraca następny dostępny znak, ale nie używa go.

Read()

Odczytuje następny znak ze strumienia wejściowego i rozwija pozycję znaku o jeden znak.

Read(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego strumienia do buforu, zaczynając od określonego indeksu.

Read(Span<Char>)

Odczytuje znaki z bieżącego strumienia do zakresu.

Read(Span<Char>)

Odczytuje znaki z bieżącego czytnika i zapisuje dane w określonym buforze.

(Odziedziczone po TextReader)
ReadAsync(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego strumienia asynchronicznie i zapisuje dane w buforze, począwszy od określonego indeksu.

ReadAsync(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego czytnika tekstu asynchronicznie i zapisuje dane w buforze, zaczynając od określonego indeksu.

(Odziedziczone po TextReader)
ReadAsync(Memory<Char>, CancellationToken)

Asynchronicznie odczytuje znaki z bieżącego strumienia do bloku pamięci.

ReadAsync(Memory<Char>, CancellationToken)

Asynchronicznie odczytuje znaki z bieżącego strumienia do bloku pamięci.

(Odziedziczone po TextReader)
ReadBlock(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego strumienia i zapisuje dane w buforze, zaczynając od określonego indeksu.

ReadBlock(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego czytnika tekstu i zapisuje dane w buforze, zaczynając od określonego indeksu.

(Odziedziczone po TextReader)
ReadBlock(Span<Char>)

Odczytuje znaki z bieżącego strumienia i zapisuje dane w buforze.

ReadBlock(Span<Char>)

Odczytuje znaki z bieżącego strumienia i zapisuje dane w buforze.

(Odziedziczone po TextReader)
ReadBlockAsync(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego strumienia asynchronicznie i zapisuje dane w buforze, począwszy od określonego indeksu.

ReadBlockAsync(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego czytnika tekstu asynchronicznie i zapisuje dane w buforze, zaczynając od określonego indeksu.

(Odziedziczone po TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

Asynchronicznie odczytuje znaki z bieżącego strumienia i zapisuje dane w buforze.

ReadBlockAsync(Memory<Char>, CancellationToken)

Asynchronicznie odczytuje znaki z bieżącego strumienia i zapisuje dane w buforze.

(Odziedziczone po TextReader)
ReadLine()

Odczytuje wiersz znaków z bieżącego strumienia i zwraca dane jako ciąg.

ReadLineAsync()

Odczytuje wiersz znaków asynchronicznie z bieżącego strumienia i zwraca dane jako ciąg.

ReadLineAsync()

Odczytuje wiersz znaków asynchronicznie i zwraca dane jako ciąg.

(Odziedziczone po TextReader)
ReadLineAsync(CancellationToken)

Odczytuje wiersz znaków asynchronicznie z bieżącego strumienia i zwraca dane jako ciąg.

ReadLineAsync(CancellationToken)

Odczytuje wiersz znaków asynchronicznie i zwraca dane jako ciąg.

(Odziedziczone po TextReader)
ReadToEnd()

Odczytuje wszystkie znaki z bieżącej pozycji na końcu strumienia.

ReadToEndAsync()

Odczytuje wszystkie znaki z bieżącej pozycji na końcu strumienia asynchronicznie i zwraca je jako jeden ciąg.

ReadToEndAsync()

Odczytuje wszystkie znaki z bieżącej pozycji na końcu czytnika tekstu asynchronicznie i zwraca je jako jeden ciąg.

(Odziedziczone po TextReader)
ReadToEndAsync(CancellationToken)

Odczytuje wszystkie znaki z bieżącej pozycji na końcu strumienia asynchronicznie i zwraca je jako jeden ciąg.

ReadToEndAsync(CancellationToken)

Odczytuje wszystkie znaki z bieżącej pozycji na końcu czytnika tekstu asynchronicznie i zwraca je jako jeden ciąg.

(Odziedziczone po TextReader)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDisposable.Dispose()

Aby uzyskać opis tego elementu członkowskiego, zobacz Dispose().

(Odziedziczone po TextReader)

Dotyczy

Zobacz też