StreamReader Klasse

Definition

Implementiert einen TextReader, der Zeichen aus einem Bytestream in einer bestimmten Codierung liest.

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
Vererbung
StreamReader
Vererbung
Attribute

Beispiele

Im folgenden Beispiel wird eine Instanz von StreamReader verwendet, um Text aus einer Datei zu lesen. Der in diesem Beispiel verwendete Konstruktor wird für die Verwendung in Windows Store-Apps nicht unterstützt.

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

Im folgenden Beispiel wird ein StreamReader -Objekt instanziiert und seine ReadAsync -Methode aufgerufen, um eine Datei asynchron zu lesen.

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.

Hinweise

StreamReader ist für die Zeicheneingabe in einer bestimmten Codierung konzipiert, während die Stream -Klasse für die Byteeingabe und -ausgabe konzipiert ist. Verwenden Sie zum StreamReader Lesen von Informationszeilen aus einer Standardtextdatei.

Wichtig

Dieser Typ implementiert die IDisposable-Schnittstelle. Nach Abschluss der Verwendung sollten Sie den Typ entweder direkt oder indirekt löschen. Zum direkten Löschen des Typs rufen Sie seine Dispose-Methode in einem try/catch-Block auf. Zum indirekten Löschen verwenden Sie ein Sprachkonstrukt wie using (in C#) oder Using (in Visual Basic). Weitere Informationen finden Sie im Abschnitt „Verwenden eines Objekts, das IDisposable implementiert“ des Themas „Die IDisposable-Schnittstelle“.

StreamReader wird standardmäßig auf UTF-8-Codierung festgelegt, sofern nicht anders angegeben, anstatt standardmäßig die ANSI-Codepage für das aktuelle System zu verwenden. UTF-8 behandelt Unicode-Zeichen ordnungsgemäß und liefert konsistente Ergebnisse für lokalisierte Versionen des Betriebssystems. Wenn Sie die aktuelle Zeichencodierung mithilfe der CurrentEncoding -Eigenschaft abrufen, ist der Wert erst nach der ersten Read Methode zuverlässig, da die automatische Codierungserkennung erst nach dem ersten Aufruf einer Read Methode erfolgt.

Standardmäßig ist ein StreamReader nicht threadsicher. Einen threadsicheren Wrapper finden Sie TextReader.Synchronized unter.

Die Read(Char[], Int32, Int32) Methodenüberladungen und Write(Char[], Int32, Int32) lesen und schreiben die Anzahl von Zeichen, die durch den count Parameter angegeben werden. Diese sind von BufferedStream.Read und BufferedStream.Writezu unterscheiden, die die durch den count Parameter angegebene Anzahl von Bytes lesen und schreiben. Verwenden Sie die BufferedStream Methoden nur zum Lesen und Schreiben einer integralen Anzahl von Bytearrayelementen.

Hinweis

Beim Lesen aus einem Streamist es effizienter, einen Puffer zu verwenden, der die gleiche Größe wie der interne Puffer des Datenstroms aufweist.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Konstruktoren

StreamReader(Stream)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream.

StreamReader(Stream, Boolean)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream mit der angegebenen Option zur Erkennung der Bytereihenfolgemarken.

StreamReader(Stream, Encoding)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream und mit der angegebenen Zeichencodierung.

StreamReader(Stream, Encoding, Boolean)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream mit der angegebenen Zeichencodierung und Option zur Erkennung der Bytereihenfolgemarken.

StreamReader(Stream, Encoding, Boolean, Int32)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream mit der angegebenen Zeichencodierung, Option zur Erkennung der Bytereihenfolgemarken und Puffergröße.

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

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream auf Grundlage der angegebenen Zeichencodierung, der Option zur Erkennung der Bytereihenfolgenmarken, der Puffergröße und lässt optional den Stream geöffnet.

StreamReader(String)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Dateinamen.

StreamReader(String, Boolean)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Dateinamen mit der angegebenen Option zur Erkennung der Bytereihenfolgemarken.

StreamReader(String, Encoding)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Dateinamen und mit der angegebenen Zeichencodierung.

StreamReader(String, Encoding, Boolean)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Dateinamen mit der angegebenen Zeichencodierung und Option zur Erkennung der Bytereihenfolgemarken.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

Initialisiert eine neue Instanz der StreamReader -Klasse für den angegebenen Dateipfad mit der angegebenen Zeichencodierung, der angegebenen Option zur Erkennung von Bytereihenfolgen und konfiguriert mit dem angegebenen FileStreamOptions Objekt.

StreamReader(String, Encoding, Boolean, Int32)

Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Dateinamen mit der angegebenen Zeichencodierung, Option zur Erkennung der Bytereihenfolgemarken und Puffergröße.

StreamReader(String, FileStreamOptions)

Initialisiert eine neue Instanz der StreamReader -Klasse für den angegebenen Dateipfad, wobei die Standardcodierung verwendet wird, wodurch die Erkennung von Bytereihenfolgemarkierungen am Anfang der Datei ermöglicht und mit dem angegebenen FileStreamOptions Objekt konfiguriert wird.

Felder

Null

Ein StreamReader-Objekt um einen leeren Stream.

Eigenschaften

BaseStream

Gibt den zugrunde liegenden Stream zurück.

CurrentEncoding

Ruft die aktuelle Zeichencodierung ab, die das aktuelle StreamReader-Objekt verwendet.

EndOfStream

Ruft einen Wert ab, der angibt, ob sich die aktuelle Streamposition am Ende des Streams befindet.

Methoden

Close()

Schließt das StreamReader-Objekt sowie den zugrunde liegenden Stream und gibt alle dem Reader zugeordneten Systemressourcen frei.

Close()

Schließt TextReader und gibt alle dem TextReader zugeordneten Systemressourcen frei.

(Geerbt von TextReader)
CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
DiscardBufferedData()

Löscht den internen Puffer.

Dispose()

Gibt alle vom TextReader-Objekt verwendeten Ressourcen frei.

(Geerbt von TextReader)
Dispose(Boolean)

Schließt den zugrunde liegenden Stream und gibt die vom StreamReader verwendeten nicht verwalteten Ressourcen sowie optional auch die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
Peek()

Gibt das nächste verfügbare Zeichen zurück, ohne es zu verarbeiten.

Read()

Liest das nächste Zeichen aus dem Eingabestream und verschiebt die Zeichenposition um ein Zeichen nach vorn.

Read(Char[], Int32, Int32)

Liest vom aktuellen Stream ein angegebenes Maximum von Zeichen in einen Puffer ein und beginnt dabei am angegebenen Index.

Read(Span<Char>)

Liest die Zeichen aus dem aktuellen Datenstrom in eine Spanne.

Read(Span<Char>)

Liest die Zeichen aus dem aktuellen Reader und schreibt die Daten in den angegebenen Puffer

(Geerbt von TextReader)
ReadAsync(Char[], Int32, Int32)

Liest eine angegebene Höchstanzahl von Zeichen asynchron aus dem aktuellen Stream und schreibt die Daten in einen Puffer, wobei am angegebenen Index begonnen wird.

ReadAsync(Char[], Int32, Int32)

Liest asynchron eine angegebene Höchstanzahl von Zeichen aus dem aktuellen Textreader und schreibt die Daten in einen Puffer, wobei am angegebenen Index begonnen wird.

(Geerbt von TextReader)
ReadAsync(Memory<Char>, CancellationToken)

Liest die Zeichen asynchron aus dem aktuellen Datenstrom in einen Speicherblock.

ReadAsync(Memory<Char>, CancellationToken)

Liest die Zeichen asynchron aus dem aktuellen Datenstrom in einen Speicherblock.

(Geerbt von TextReader)
ReadBlock(Char[], Int32, Int32)

Liest eine angegebene Höchstanzahl von Zeichen aus dem aktuellen Stream und schreibt die Daten in einen Puffer, wobei am angegebenen Index begonnen wird.

ReadBlock(Char[], Int32, Int32)

Liest eine angegebene Höchstanzahl von Zeichen aus dem aktuellen Textreader und schreibt die Daten in einen Puffer, wobei am angegebenen Index begonnen wird.

(Geerbt von TextReader)
ReadBlock(Span<Char>)

Liest die Zeichen aus dem aktuellen Datenstrom und schreibt die Daten in einen Puffer.

ReadBlock(Span<Char>)

Liest die Zeichen aus dem aktuellen Datenstrom und schreibt die Daten in einen Puffer.

(Geerbt von TextReader)
ReadBlockAsync(Char[], Int32, Int32)

Liest eine angegebene Höchstanzahl von Zeichen asynchron aus dem aktuellen Stream und schreibt die Daten in einen Puffer, wobei am angegebenen Index begonnen wird.

ReadBlockAsync(Char[], Int32, Int32)

Liest asynchron eine angegebene Höchstanzahl von Zeichen aus dem aktuellen Textreader und schreibt die Daten in einen Puffer, wobei am angegebenen Index begonnen wird.

(Geerbt von TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

Liest die Zeichen aus dem aktuellen Datenstrom asynchron und schreibt die Daten in einen Puffer.

ReadBlockAsync(Memory<Char>, CancellationToken)

Liest die Zeichen aus dem aktuellen Datenstrom asynchron und schreibt die Daten in einen Puffer.

(Geerbt von TextReader)
ReadLine()

Liest eine Zeile von Zeichen aus dem aktuellen Stream und gibt die Daten als Zeichenfolge zurück.

ReadLineAsync()

Liest eine Zeile von Zeichen asynchron aus dem aktuellen Stream und gibt die Daten als Zeichenfolge zurück.

ReadLineAsync()

Liest eine Zeile von asynchron Zeichen aus dem aktuellen Stream und gibt die Daten als Zeichenfolge zurück.

(Geerbt von TextReader)
ReadLineAsync(CancellationToken)

Liest eine Zeile von Zeichen asynchron aus dem aktuellen Stream und gibt die Daten als Zeichenfolge zurück.

ReadLineAsync(CancellationToken)

Liest eine Zeile von asynchron Zeichen aus dem aktuellen Stream und gibt die Daten als Zeichenfolge zurück.

(Geerbt von TextReader)
ReadToEnd()

Liest alle Zeichen von der aktuellen Position bis zum Ende des Streams.

ReadToEndAsync()

Liest alle Zeichen asynchron von der aktuellen Position bis zum Ende des Streams und gibt diese als einzelne Zeichenfolge zurück.

ReadToEndAsync()

Liest alle Zeichen asynchron von der aktuellen Position bis zum Ende des Text-Readers und gibt diese als eine Zeichenfolge zurück.

(Geerbt von TextReader)
ReadToEndAsync(CancellationToken)

Liest alle Zeichen asynchron von der aktuellen Position bis zum Ende des Streams und gibt diese als einzelne Zeichenfolge zurück.

ReadToEndAsync(CancellationToken)

Liest alle Zeichen asynchron von der aktuellen Position bis zum Ende des Text-Readers und gibt diese als eine Zeichenfolge zurück.

(Geerbt von TextReader)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Eine Beschreibung dieses Elements finden Sie unter Dispose().

(Geerbt von TextReader)

Gilt für:

Weitere Informationen