Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream mit der angegebenen Zeichencodierung, der Option zur Erkennung der Markierung für die Bytereihenfolge und der angegebenen Puffergröße.
Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Sub New ( _
stream As Stream, _
encoding As Encoding, _
detectEncodingFromByteOrderMarks As Boolean, _
bufferSize As Integer _
)
'Usage
Dim stream As Stream
Dim encoding As Encoding
Dim detectEncodingFromByteOrderMarks As Boolean
Dim bufferSize As Integer
Dim instance As New StreamReader(stream, encoding, detectEncodingFromByteOrderMarks, bufferSize)
public StreamReader (
Stream stream,
Encoding encoding,
bool detectEncodingFromByteOrderMarks,
int bufferSize
)
public:
StreamReader (
Stream^ stream,
Encoding^ encoding,
bool detectEncodingFromByteOrderMarks,
int bufferSize
)
public StreamReader (
Stream stream,
Encoding encoding,
boolean detectEncodingFromByteOrderMarks,
int bufferSize
)
public function StreamReader (
stream : Stream,
encoding : Encoding,
detectEncodingFromByteOrderMarks : boolean,
bufferSize : int
)
Parameter
- stream
Der zu lesende Stream.
- encoding
Die zu verwendende Zeichencodierung.
- detectEncodingFromByteOrderMarks
Gibt an, ob am Anfang der Datei nach Bytereihenfolgemarkierungen gesucht werden soll.
- bufferSize
Die Mindestgröße des Puffers.
Ausnahmen
| Ausnahmetyp | Bedingung |
|---|---|
Der Stream unterstützt keine Lesevorgänge. |
|
stream oder encoding ist NULL (Nothing in Visual Basic). |
|
bufferSize ist kleiner oder gleich 0 (null). |
Hinweise
Die Puffergröße, in einer Zahl aus 16-Bit-Zeichen, wird durch den bufferSize-Parameter festgelegt. Wenn bufferSize kleiner als die Mindestgröße (128 Zeichen) ist, wird die kleinste zulässige Größe verwendet.
Mit diesem Konstruktor können Sie die Codierung ändern, wenn Sie zum ersten Mal aus dem StreamReader-Objekt lesen. Der detectEncodingFromByteOrderMarks-Parameter erkennt die Codierung durch Überprüfen der ersten drei Bytes des Streams. Text in den Formaten UTF-8, Little-Endian-Unicode und Big-Endian-Unicode wird automatisch erkannt, wenn die Datei mit den entsprechenden Bytereihenfolgemarkierungen beginnt. Andernfalls wird die durch den Benutzer angegebene Codierung verwendet. Weitere Informationen finden Sie unter Encoding.GetPreamble-Methode.
Hinweis
Beim Lesen aus einem Stream ist es effizienter, einen Puffer mit der Größe vom internen Puffer des Streams zu verwenden.
Warnung
Wenn Sie einen Zeichensatz mit einer bestimmten Kultureinstellung kompilieren und die gleichen Zeichen mit einer anderen Kultureinstellung abrufen, können diese möglicherweise nicht interpretiert werden, und es wird eine Ausnahme ausgelöst.
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. |
|
Schreiben in eine Textdatei. |
|
Lesen aus einer Textdatei. |
|
Anfügen von Text an eine Datei. |
|
Abrufen der Größe einer Datei. |
|
Abrufen der Attribute einer Datei. |
|
Festlegen der Attribute einer Datei. |
|
Bestimmen, ob eine Datei vorhanden ist. |
|
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 die Verwendung dieses StreamReader-Konstruktors veranschaulicht.
Private Sub getNewStreamReader()
Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
'Get a new StreamReader in ASCII format from a
'file using a buffer and byte order mark detection
Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
System.Text.Encoding.ASCII, False, 512)
'Get a new StreamReader in ASCII format from a
'file with byte order mark detection = false
Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
System.Text.Encoding.ASCII, False)
'Get a new StreamReader in ASCII format from a file
Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
System.Text.Encoding.ASCII)
'Get a new StreamReader from a
'file with byte order mark detection = false
Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
'Get a new StreamReader from a file
Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
'Get a new StreamReader in ASCII format from a
'FileStream with byte order mark detection = false and a buffer
Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
System.Text.Encoding.ASCII, False, 512)
'Get a new StreamReader in ASCII format from a
'FileStream with byte order mark detection = false
Dim SrAsciiFromStreamFalse = New StreamReader(S, _
System.Text.Encoding.ASCII, False)
'Get a new StreamReader in ASCII format from a FileStream
Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
System.Text.Encoding.ASCII)
'Get a new StreamReader from a
'FileStream with byte order mark detection = false
Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
'Get a new StreamReader from a FileStream
Dim SrFromStream As StreamReader = New StreamReader(S)
End Sub
private void getNewStreamReader()
{
//Get a new StreamReader in ASCII format from a
//file using a buffer and byte order mark detection
StreamReader srAsciiFromFileFalse512 =
new StreamReader("C:\\Temp\\Test.txt",
System.Text.Encoding.ASCII, false, 512);
//Get a new StreamReader in ASCII format from a
//file with byte order mark detection = false
StreamReader srAsciiFromFileFalse =
new StreamReader("C:\\Temp\\Test.txt",
System.Text.Encoding.ASCII, false);
//Get a new StreamReader in ASCII format from a file
StreamReader srAsciiFromFile =
new StreamReader("C:\\Temp\\Test.txt",
System.Text.Encoding.ASCII);
//Get a new StreamReader from a
//file with byte order mark detection = false
StreamReader srFromFileFalse =
new StreamReader("C:\\Temp\\Test.txt", false);
//Get a new StreamReader from a file
StreamReader srFromFile =
new StreamReader("C:\\Temp\\Test.txt");
//Get a new StreamReader in ASCII format from a
//FileStream with byte order mark detection = false and a buffer
StreamReader srAsciiFromStreamFalse512 = new StreamReader(
(System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
System.Text.Encoding.ASCII, false, 512);
//Get a new StreamReader in ASCII format from a
//FileStream with byte order mark detection = false
StreamReader srAsciiFromStreamFalse = new StreamReader(
(System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
System.Text.Encoding.ASCII, false);
//Get a new StreamReader in ASCII format from a FileStream
StreamReader srAsciiFromStream = new StreamReader(
(System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
System.Text.Encoding.ASCII);
//Get a new StreamReader from a
//FileStream with byte order mark detection = false
StreamReader srFromStreamFalse = new StreamReader(
(System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
false);
//Get a new StreamReader from a FileStream
StreamReader srFromStream = new StreamReader(
(System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
void getNewStreamReader()
{
//Get a new StreamReader in ASCII format from a
//file using a buffer and byte order mark detection
StreamReader^ srAsciiFromFileFalse512 = gcnew StreamReader( "C:\\Temp\\Test.txt",System::Text::Encoding::ASCII,false,512 );
//Get a new StreamReader in ASCII format from a
//file with byte order mark detection = false
StreamReader^ srAsciiFromFileFalse = gcnew StreamReader( "C:\\Temp\\Test.txt",System::Text::Encoding::ASCII,false );
//Get a new StreamReader in ASCII format from a file
StreamReader^ srAsciiFromFile = gcnew StreamReader( "C:\\Temp\\Test.txt",System::Text::Encoding::ASCII );
//Get a new StreamReader from a
//file with byte order mark detection = false
StreamReader^ srFromFileFalse = gcnew StreamReader( "C:\\Temp\\Test.txt",false );
//Get a new StreamReader from a file
StreamReader^ srFromFile = gcnew StreamReader( "C:\\Temp\\Test.txt" );
//Get a new StreamReader in ASCII format from a
//FileStream with byte order mark detection = false and a buffer
StreamReader^ srAsciiFromStreamFalse512 = gcnew StreamReader( File::OpenRead( "C:\\Temp\\Test.txt" ),System::Text::Encoding::ASCII,false,512 );
//Get a new StreamReader in ASCII format from a
//FileStream with byte order mark detection = false
StreamReader^ srAsciiFromStreamFalse = gcnew StreamReader( File::OpenRead( "C:\\Temp\\Test.txt" ),System::Text::Encoding::ASCII,false );
//Get a new StreamReader in ASCII format from a FileStream
StreamReader^ srAsciiFromStream = gcnew StreamReader( File::OpenRead( "C:\\Temp\\Test.txt" ),System::Text::Encoding::ASCII );
//Get a new StreamReader from a
//FileStream with byte order mark detection = false
StreamReader^ srFromStreamFalse = gcnew StreamReader( File::OpenRead( "C:\\Temp\\Test.txt" ),false );
//Get a new StreamReader from a FileStream
StreamReader^ srFromStream = gcnew StreamReader( File::OpenRead( "C:\\Temp\\Test.txt" ) );
}
private void GetNewStreamReader()
{
//Get a new StreamReader in ASCII format from a
//file using a buffer and byte order mark detection
StreamReader srAsciiFromFileFalse512 =
new StreamReader("C:\\Temp\\Test.txt",
System.Text.Encoding.get_ASCII(), false, 512);
//Get a new StreamReader in ASCII format from a
//file with byte order mark detection = false
StreamReader srAsciiFromFileFalse =
new StreamReader("C:\\Temp\\Test.txt",
System.Text.Encoding.get_ASCII(), false);
//Get a new StreamReader in ASCII format from a file
StreamReader srAsciiFromFile =
new StreamReader("C:\\Temp\\Test.txt",
System.Text.Encoding.get_ASCII());
//Get a new StreamReader from a
//file with byte order mark detection = false
StreamReader srFromFileFalse =
new StreamReader("C:\\Temp\\Test.txt", false);
//Get a new StreamReader from a file
StreamReader srFromFile = new StreamReader("C:\\Temp\\Test.txt");
//Get a new StreamReader in ASCII format from a
//FileStream with byte order mark detection = false and a buffer
StreamReader srAsciiFromStreamFalse512 =
new StreamReader(((System.IO.Stream)
(File.OpenRead("C:\\Temp\\Test.txt"))),
System.Text.Encoding.get_ASCII(), false, 512);
//Get a new StreamReader in ASCII format from a
//FileStream with byte order mark detection = false
StreamReader srAsciiFromStreamFalse =
new StreamReader(((System.IO.Stream)
(File.OpenRead("C:\\Temp\\Test.txt"))),
System.Text.Encoding.get_ASCII(), false);
//Get a new StreamReader in ASCII format from a FileStream
StreamReader srAsciiFromStream =
new StreamReader(((System.IO.Stream)
(File.OpenRead("C:\\Temp\\Test.txt"))),
System.Text.Encoding.get_ASCII());
//Get a new StreamReader from a
//FileStream with byte order mark detection = false
StreamReader srFromStreamFalse =
new StreamReader(((System.IO.Stream)
(File.OpenRead("C:\\Temp\\Test.txt"))), false);
//Get a new StreamReader from a FileStream
StreamReader srFromStream =
new StreamReader(((System.IO.Stream)
(File.OpenRead("C:\\Temp\\Test.txt"))));
} //GetNewStreamReader
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-Klasse
StreamReader-Member
System.IO-Namespace
Encoding
Weitere Ressourcen
Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei