StreamReader Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Implementuje znak TextReader , który odczytuje znaki ze strumienia bajtów w określonym kodowania.
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
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie użyto wystąpienia klasy StreamReader , aby odczytać tekst z pliku. Konstruktor używany w tym przykładzie nie jest obsługiwany do użycia w Windows Store Apps.
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 umożliwia asynchroniczne odczytanie pliku za pomocą wystąpienia obiektu i wywołania jego StreamReader ReadAsync metody.
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 Klasa jest przeznaczona do wprowadzania znaków w określonym kodowaniu, natomiast klasa jest przeznaczona dla bajtowych danych wejściowych Stream i wyjściowych. Do StreamReader odczytywania wierszy informacji ze standardowego pliku tekstowego.
Ważne
Ten typ implementuje IDisposable interfejs. Po zakończeniu korzystania z typu należy usunąć go bezpośrednio lub pośrednio. Aby bezpośrednio usunąć typ, wywołaj jego Dispose metodę w try
/ catch
bloku. Aby usunąć go pośrednio, użyj konstrukcji języka, takiej jak using
(w języku C#) lub Using
(w Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję "Używanie obiektu, który implementuje interfejs IDisposable" w IDisposable temacie interfejsu.
StreamReader domyślnie kodowanie UTF-8, chyba że określono inaczej, zamiast domyślnego kodowania na stronie kodowej ANSI dla bieżącego systemu. Kod UTF-8 poprawnie obsługuje znaki Unicode i zapewnia spójne wyniki w zlokalizowanych wersjach systemu operacyjnego. Jeśli pobierzemy bieżące kodowanie znaków przy użyciu właściwości , wartość nie będzie niezawodna, dopóki nie zostanie wykonana pierwsza metoda, ponieważ automatyczne wykrywanie kodowania nie zostanie wykonane, dopóki pierwsze wywołanie metody nie zostanie CurrentEncoding Read Read wykonane.
Domyślnie a nie StreamReader jest bezpieczny wątkowo. Zobacz TextReader.Synchronized , aby uzyskać bezpieczną wątkowo otokę.
Metoda Read(Char[], Int32, Int32) i Write(Char[], Int32, Int32) przeciąża odczyt i zapis liczby znaków określonej przez count
parametr. Należy je odróżnić od i , które odczytują i zapisują liczbę BufferedStream.Read BufferedStream.Write bajtów określoną przez count
parametr . Metody BufferedStream te są stosowane tylko do odczytywania i zapisywania całkowitej liczby elementów tablicy bajtów.
Uwaga
Podczas odczytywania z pliku wydajniej jest używać buforu o takim samym rozmiarze jak wewnętrzny Stream bufor strumienia.
Aby uzyskać listę typowych zadań we/wy, zobacz Typowe zadania we/wy.
Konstruktory
StreamReader(Stream) |
Inicjuje nowe wystąpienie StreamReader klasy dla określonego strumienia. |
StreamReader(Stream, Boolean) |
Inicjuje nowe wystąpienie klasy dla określonego strumienia z opcją wykrywania określonego StreamReader znacznika kolejności bajtów. |
StreamReader(Stream, Encoding) |
Inicjuje nowe wystąpienie klasy StreamReader dla określonego strumienia z określonym kodowaniem znaków. |
StreamReader(Stream, Encoding, Boolean) |
Inicjuje nowe wystąpienie klasy dla określonego strumienia z określonym kodowaniem znaków i opcją wykrywania StreamReader znacznika kolejności bajtów. |
StreamReader(Stream, Encoding, Boolean, Int32) |
Inicjuje nowe wystąpienie klasy dla określonego strumienia z określonym kodowaniem znaków, opcją wykrywania znacznika kolejności bajtów StreamReader i rozmiarem buforu. |
StreamReader(Stream, Encoding, Boolean, Int32, Boolean) |
Inicjuje nowe wystąpienie klasy dla określonego strumienia na podstawie określonego kodowania znaków, opcji wykrywania znacznika kolejności bajtów i rozmiaru buforu i opcjonalnie pozostawia StreamReader strumień otwarty. |
StreamReader(String) |
Inicjuje nowe wystąpienie StreamReader klasy dla określonej nazwy pliku. |
StreamReader(String, Boolean) |
Inicjuje nowe wystąpienie klasy dla określonej nazwy pliku z opcją wykrywania określonego StreamReader znacznika kolejności bajtów. |
StreamReader(String, Encoding) |
Inicjuje nowe wystąpienie klasy StreamReader dla określonej nazwy pliku z określonym kodowaniem znaków. |
StreamReader(String, Encoding, Boolean) |
Inicjuje nowe wystąpienie klasy dla określonej nazwy pliku z określonym kodowaniem znaków i opcją wykrywania StreamReader znacznika kolejności bajtów. |
StreamReader(String, Encoding, Boolean, FileStreamOptions) |
Inicjuje nowe wystąpienie klasy dla określonej ścieżki pliku z określonym kodowaniem znaków, opcją wykrywania znacznika kolejności bajtów i skonfigurowaną przy użyciu StreamReader określonego FileStreamOptions obiektu. |
StreamReader(String, Encoding, Boolean, Int32) |
Inicjuje nowe wystąpienie klasy dla określonej nazwy pliku z określonym kodowaniem znaków, opcją wykrywania znacznika kolejności bajtów StreamReader i rozmiarem buforu. |
StreamReader(String, FileStreamOptions) |
Inicjuje nowe wystąpienie klasy dla określonej ścieżki pliku przy użyciu kodowania domyślnego, umożliwiając wykrywanie znaczników kolejności bajtów na początku pliku i skonfigurowane przy użyciu StreamReader określonego FileStreamOptions obiektu. |
Pola
Null |
Obiekt StreamReader wokół pustego strumienia. |
Właściwości
BaseStream |
Zwraca strumień bazowy. |
CurrentEncoding |
Pobiera bieżące kodowanie znaków używane przez StreamReader bieżący obiekt. |
EndOfStream |
Pobiera wartość, która wskazuje, czy bieżąca pozycja strumienia znajduje się na końcu strumienia. |
Metody
Close() |
Zamyka obiekt StreamReader i źródłowy strumień i zwalnia wszystkie zasoby systemowe skojarzone z czytnikiem. |
Close() |
Zamyka element TextReader i zwalnia wszystkie zasoby systemowe skojarzone z programem |
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() |
Czyszczy bufor wewnętrzny. |
Dispose() |
Zwalnia wszystkie zasoby używane przez TextReader obiekt. (Odziedziczone po TextReader) |
Dispose(Boolean) |
Zamyka strumień źródłowy, zwalnia nieza zarządzanie zasobami używanymi przez element i opcjonalnie zwalnia StreamReader 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() |
Nieaktualne.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeLifetimeService() |
Nieaktualne.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad 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 zużywa go. |
Read() |
Odczytuje następny znak ze strumienia wejściowego i postępuje położenie znaku o jeden znak. |
Read(Char[], Int32, Int32) |
Odczytuje określoną maksymalną liczbę znaków z bieżącego strumienia do buforu, począwszy 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, począwszy 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 i zwraca dane jako ciąg. (Odziedziczone po TextReader) |
ReadToEnd() |
Odczytuje wszystkie znaki od bieżącej pozycji do końca strumienia. |
ReadToEndAsync() |
Odczytuje wszystkie znaki z bieżącej pozycji do końca 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 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) |