StreamReader Klasa

Definicja

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
StreamReader
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 TextReader.

(Odziedziczone po TextReader)
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)

Dotyczy

Zobacz też