StreamReader-Klasse

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

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class StreamReader
    Inherits TextReader
'Usage
Dim instance As StreamReader
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class StreamReader : TextReader
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class StreamReader : public TextReader
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class StreamReader extends TextReader
SerializableAttribute 
ComVisibleAttribute(true) 
public class StreamReader extends TextReader

Hinweise

Mit StreamReader werden Zeichen in einer bestimmten Codierung eingegeben. Die Stream-Klasse wird dagegen zur Eingabe und Ausgabe von Bytes verwendet. Verwenden Sie StreamReader zum Lesen von Zeilen mit Informationen aus einer Standardtextdatei.

StreamReader verwendet standardmäßig die UTF-8-Codierung, soweit dies nicht anders festgelegt wird, und nicht die ANSI-Codepage für das aktuelle System. UTF-8 behandelt Unicode-Zeichen richtig und stellt bei lokalisierten Versionen des Betriebssystems konsistente Ergebnisse bereit.

Standardmäßig ist StreamReader nicht threadsicher. Informationen über einen threadsicheren Wrapper finden Sie unter TextReader.Synchronized.

Die Read(Char[],Int32,Int32)-Methodenüberladung und die Write(Char[],Int32,Int32)-Methodenüberladung lesen und schreiben die durch den count-Parameter angegebene Anzahl von Zeichen. Sie unterscheiden sich von BufferedStream.Read und BufferedStream.Write, die die durch den count-Parameter angegebene Anzahl von Bytes lesen und schreiben. Verwenden Sie die BufferedStream-Methoden nur für das Lesen und Schreiben einer ganzzahligen Anzahl von Elementen eines Bytearrays.

HinweisHinweis

Beim Lesen aus einem Stream ist es effizienter, einen Puffer mit der Größe vom internen Puffer des Streams zu verwenden.

Ein Beispiel für die Verwendung dieser Klasse finden Sie im Beispielabschnitt. In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Aufgabe

Beispiel in diesem Thema

Eine Textdatei erstellen.

Gewusst wie: Schreiben von Text in eine Datei

Schreiben in eine Textdatei.

Gewusst wie: Schreiben von Text in eine Datei

Lesen aus einer Textdatei.

Gewusst wie: Lesen aus einer Textdatei

Anfügen von Text an eine Datei.

Gewusst wie: Öffnen und Anfügen an eine Protokolldatei

File.AppendText

FileInfo.AppendText

Abrufen der Größe einer Datei.

FileInfo.Length

Abrufen der Attribute einer Datei.

File.GetAttributes

Festlegen der Attribute einer Datei.

File.SetAttributes

Bestimmen, ob eine Datei vorhanden ist.

File.Exists

Lesen aus einer Binärdatei.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Schreiben in eine Binärdatei.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Beispiel

Im folgenden Codebeispiel wird ein StreamReader-Objekt verwendet, um Text aus einer Datei zu lesen.

Imports System
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
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);
        }
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      // Create an instance of StreamReader to read from a file.
      // The using statement also closes the StreamReader.
      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 );
   }
}
import System.*;
import System.IO.*;

class Test
{
    public static void main(String[] args)
    {
        try {            
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            StreamReader sr = new 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()) != null) {
                    Console.WriteLine(line);
                }
            }
            finally {
                sr.Dispose();
            }            
        }
        catch (System.Exception e) {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.get_Message());
        }
    } //main
} //Test

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.IO.TextReader
      System.IO.StreamReader

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

StreamReader-Member
System.IO-Namespace
Encoding
Stream-Klasse
StreamWriter

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei
Grundlegende Datei-E/A
Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei