StreamReader Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- Vererbung
- Attribute
Beispiele
Im folgenden Beispiel wird eine instance 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 dessen 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 verarbeitet 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 mit dem ersten Aufruf einer Read Methode erfolgt.
Standardmäßig ist ein StreamReader nicht threadsicher. Einen threadsicheren Wrapper finden Sie unter TextReader.Synchronized .
Write(Char[], Int32, Int32) Die Read(Char[], Int32, Int32) Methodenüberladungen lesen und schreiben die Anzahl der 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 allgemeiner 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 instance der StreamReader -Klasse für den angegebenen Dateipfad mit der angegebenen Zeichencodierungs- und Bytereihenfolgezeichenerkennungsoption 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 instance der Klasse für den StreamReader angegebenen Dateipfad unter Verwendung der Standardcodierung, wodurch die Erkennung von Bytereihenfolgemarkierungen am Anfang der Datei aktiviert 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 |
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) |