StreamReader Třída

Definice

Implementuje rozhraní TextReader , které čte znaky z datového proudu bajtů v konkrétním kódování.Implements a TextReader that reads characters from a byte stream in a particular encoding.

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
Dědičnost
StreamReader
Dědičnost
Atributy

Příklady

Následující příklad používá instanci StreamReader pro čtení textu ze souboru.The following example uses an instance of StreamReader to read text from a file. Konstruktor použitý v tomto příkladu není podporován pro použití v aplikacích pro Windows Store.The constructor used in this example is not supported for use in 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

Následující příklad vytvoří instanci StreamReader objektu a zavolá jeho ReadAsync metodu pro asynchronní čtení souboru.The following example instantiates a StreamReader object and calls its ReadAsync method to read a file asynchronously.

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.

Poznámky

StreamReader je navržen pro zadání znaků v konkrétním kódování, zatímco Stream Třída je navržena pro bajtový vstup a výstup.StreamReader is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. Používá StreamReader se pro čtení řádků informací ze standardního textového souboru.Use StreamReader for reading lines of information from a standard text file.

Důležité

Tento typ implementuje IDisposable rozhraní.This type implements the IDisposable interface. Po dokončení používání typu byste ho měli nakládat buď přímo, nebo nepřímo.When you have finished using the type, you should dispose of it either directly or indirectly. Chcete-li přímo uvolnit typ, zavolejte jeho Dispose metodu v try / catch bloku.To dispose of the type directly, call its Dispose method in a try/catch block. Chcete-li ji nakládat nepřímo, použijte konstrukci jazyka, například using (v jazyce C#) nebo Using (v Visual Basic).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Další informace naleznete v části "použití objektu, který implementuje IDisposable" v IDisposable tématu rozhraní.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

StreamReader ve výchozím nastavení kódování UTF-8, pokud není určeno jinak, namísto výchozí znakové stránky ANSI pro aktuální systém.StreamReader defaults to UTF-8 encoding unless specified otherwise, instead of defaulting to the ANSI code page for the current system. UTF-8 zpracovává znaky Unicode správně a poskytuje konzistentní výsledky v lokalizovaných verzích operačního systému.UTF-8 handles Unicode characters correctly and provides consistent results on localized versions of the operating system. Pokud získáte aktuální kódování znaků pomocí CurrentEncoding vlastnosti, hodnota není spolehlivá až po první Read metodě, protože kódování automatické detekce není provedeno až do prvního volání Read metody.If you get the current character encoding using the CurrentEncoding property, the value is not reliable until after the first Read method, since encoding auto detection is not done until the first call to a Read method.

Ve výchozím nastavení StreamReader není vlákno bezpečné.By default, a StreamReader is not thread safe. TextReader.SynchronizedObálku pro bezpečný přístup z více vláken najdete v tématu.See TextReader.Synchronized for a thread-safe wrapper.

Read(Char[], Int32, Int32) Write(Char[], Int32, Int32) Přetížení metody a načtou a zapisují počet znaků určených count parametrem.The Read(Char[], Int32, Int32) and Write(Char[], Int32, Int32) method overloads read and write the number of characters specified by the count parameter. Ty je třeba odlišit od BufferedStream.Read a BufferedStream.Write , které čtou a zapisují počet bajtů určený count parametrem.These are to be distinguished from BufferedStream.Read and BufferedStream.Write, which read and write the number of bytes specified by the count parameter. Použijte BufferedStream metody pouze pro čtení a zápis integrálního čísla prvků bajtového pole.Use the BufferedStream methods only for reading and writing an integral number of byte array elements.

Poznámka

Při čtení z a Stream je efektivnější použít vyrovnávací paměť, která má stejnou velikost jako vnitřní vyrovnávací paměť datového proudu.When reading from a Stream, it is more efficient to use a buffer that is the same size as the internal buffer of the stream.

Seznam běžných vstupně-výstupních úloh najdete v tématu běžné vstupně-výstupní úlohy.For a list of common I/O tasks, see Common I/O Tasks.

Konstruktory

StreamReader(Stream)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud.Initializes a new instance of the StreamReader class for the specified stream.

StreamReader(Stream, Boolean)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud s možností detekce určeného pořadí bajtů.Initializes a new instance of the StreamReader class for the specified stream, with the specified byte order mark detection option.

StreamReader(Stream, Encoding)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud se zadaným kódováním znaků.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding.

StreamReader(Stream, Encoding, Boolean)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud se zadaným kódováním znaků a možností rozpoznání označení pořadí bajtů.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding and byte order mark detection option.

StreamReader(Stream, Encoding, Boolean, Int32)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud se zadaným kódováním znaků, možností rozpoznání značky pořadí bajtů a velikostí vyrovnávací paměti.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding, byte order mark detection option, and buffer size.

StreamReader(Stream, Encoding, Boolean, Int32, Boolean)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud na základě zadaného kódování znaků, možnosti detekce pořadí bajtů a velikosti vyrovnávací paměti a volitelně ponechá datový proud otevřený.Initializes a new instance of the StreamReader class for the specified stream based on the specified character encoding, byte order mark detection option, and buffer size, and optionally leaves the stream open.

StreamReader(String)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru.Initializes a new instance of the StreamReader class for the specified file name.

StreamReader(String, Boolean)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru s nastavenou možností detekce označení pořadí bajtů.Initializes a new instance of the StreamReader class for the specified file name, with the specified byte order mark detection option.

StreamReader(String, Encoding)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru se zadaným kódováním znaků.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding.

StreamReader(String, Encoding, Boolean)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru se zadaným kódováním znaků a možností rozpoznání označení pořadí bajtů.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding and byte order mark detection option.

StreamReader(String, Encoding, Boolean, Int32)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru se zadaným kódováním znaků, možností detekce pořadí bajtů a velikostí vyrovnávací paměti.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding, byte order mark detection option, and buffer size.

Pole

Null

StreamReaderObjekt kolem prázdného datového proudu.A StreamReader object around an empty stream.

Vlastnosti

BaseStream

Vrátí podkladový datový proud.Returns the underlying stream.

CurrentEncoding

Získá aktuální kódování znaků, které aktuální StreamReader objekt používá.Gets the current character encoding that the current StreamReader object is using.

EndOfStream

Získá hodnotu, která označuje, zda je aktuální pozice datového proudu na konci datového proudu.Gets a value that indicates whether the current stream position is at the end of the stream.

Metody

Close()

Zavře StreamReader objekt a podkladový datový proud a uvolní všechny systémové prostředky přidružené ke čtečce.Closes the StreamReader object and the underlying stream, and releases any system resources associated with the reader.

Close()

Zavře TextReader a uvolní všechny systémové prostředky, které jsou přidružené k TextReader .Closes the TextReader and releases any system resources associated with the TextReader.

(Zděděno od TextReader)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace požadované pro vygenerování proxy serveru, který se používá ke komunikaci se vzdáleným objektem.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Zděděno od MarshalByRefObject)
DiscardBufferedData()

Vymaže vnitřní vyrovnávací paměť.Clears the internal buffer.

Dispose()

Uvolní všechny prostředky používané TextReader objektem.Releases all resources used by the TextReader object.

(Zděděno od TextReader)
Dispose(Boolean)

Zavře podkladový datový proud, uvolní nespravované prostředky, které používá StreamReader , a volitelně uvolní spravované prostředky.Closes the underlying stream, releases the unmanaged resources used by the StreamReader, and optionally releases the managed resources.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte aktuální objekt služby životnosti, který řídí zásady životního cyklu pro tuto instanci.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Zděděno od MarshalByRefObject)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti, který řídí zásady životního cyklu pro tuto instanci.Obtains a lifetime service object to control the lifetime policy for this instance.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří kopii aktuálního objektu bez podstruktury MarshalByRefObject .Creates a shallow copy of the current MarshalByRefObject object.

(Zděděno od MarshalByRefObject)
Peek()

Vrátí další dostupný znak, ale nespotřebovává ho.Returns the next available character but does not consume it.

Read()

Přečte další znak ze vstupního datového proudu a přesune pozici znaku o jeden znak.Reads the next character from the input stream and advances the character position by one character.

Read(Char[], Int32, Int32)

Přečte zadaný maximální počet znaků z aktuálního datového proudu do vyrovnávací paměti, počínaje zadaným indexem.Reads a specified maximum of characters from the current stream into a buffer, beginning at the specified index.

Read(Span<Char>)

Přečte znaky z aktuálního datového proudu do rozsahu.Reads the characters from the current stream into a span.

Read(Span<Char>)

Přečte znaky z aktuálního čtecího modulu a zapíše data do zadané vyrovnávací paměti.Reads the characters from the current reader and writes the data to the specified buffer.

(Zděděno od TextReader)
ReadAsync(Char[], Int32, Int32)

Přečte zadaný maximální počet znaků z aktuálního datového proudu asynchronně a zapisuje data do vyrovnávací paměti, počínaje zadaným indexem.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadAsync(Char[], Int32, Int32)

Provede asynchronní čtení zadaného maximálního počtu znaků z aktuálního čtecího modulu textu a zapisuje data do vyrovnávací paměti, počínaje zadaným indexem.Reads a specified maximum number of characters from the current text reader asynchronously and writes the data to a buffer, beginning at the specified index.

(Zděděno od TextReader)
ReadAsync(Memory<Char>, CancellationToken)

Asynchronně přečte znaky z aktuálního datového proudu do bloku paměti.Asynchronously reads the characters from the current stream into a memory block.

ReadAsync(Memory<Char>, CancellationToken)

Asynchronně přečte znaky z aktuálního datového proudu do bloku paměti.Asynchronously reads the characters from the current stream into a memory block.

(Zděděno od TextReader)
ReadBlock(Char[], Int32, Int32)

Přečte zadaný maximální počet znaků z aktuálního datového proudu a zapisuje data do vyrovnávací paměti, počínaje zadaným indexem.Reads a specified maximum number of characters from the current stream and writes the data to a buffer, beginning at the specified index.

ReadBlock(Char[], Int32, Int32)

Přečte zadaný maximální počet znaků z aktuálního čtecího textu a zapisuje data do vyrovnávací paměti, počínaje zadaným indexem.Reads a specified maximum number of characters from the current text reader and writes the data to a buffer, beginning at the specified index.

(Zděděno od TextReader)
ReadBlock(Span<Char>)

Přečte znaky z aktuálního datového proudu a zapisuje data do vyrovnávací paměti.Reads the characters from the current stream and writes the data to a buffer.

ReadBlock(Span<Char>)

Přečte znaky z aktuálního datového proudu a zapisuje data do vyrovnávací paměti.Reads the characters from the current stream and writes the data to a buffer.

(Zděděno od TextReader)
ReadBlockAsync(Char[], Int32, Int32)

Přečte zadaný maximální počet znaků z aktuálního datového proudu asynchronně a zapisuje data do vyrovnávací paměti, počínaje zadaným indexem.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadBlockAsync(Char[], Int32, Int32)

Provede asynchronní čtení zadaného maximálního počtu znaků z aktuálního čtecího modulu textu a zapisuje data do vyrovnávací paměti, počínaje zadaným indexem.Reads a specified maximum number of characters from the current text reader asynchronously and writes the data to a buffer, beginning at the specified index.

(Zděděno od TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

Asynchronně přečte znaky z aktuálního datového proudu a zapisuje data do vyrovnávací paměti.Asynchronously reads the characters from the current stream and writes the data to a buffer.

ReadBlockAsync(Memory<Char>, CancellationToken)

Asynchronně přečte znaky z aktuálního datového proudu a zapisuje data do vyrovnávací paměti.Asynchronously reads the characters from the current stream and writes the data to a buffer.

(Zděděno od TextReader)
ReadLine()

Přečte řádek znaků z aktuálního datového proudu a vrátí data jako řetězec.Reads a line of characters from the current stream and returns the data as a string.

ReadLineAsync()

Přečte řádek znaků asynchronně z aktuálního datového proudu a vrátí data jako řetězec.Reads a line of characters asynchronously from the current stream and returns the data as a string.

ReadLineAsync()

Přečte řádek znaků asynchronně a vrátí data jako řetězec.Reads a line of characters asynchronously and returns the data as a string.

(Zděděno od TextReader)
ReadToEnd()

Přečte všechny znaky z aktuální pozice na konec proudu.Reads all characters from the current position to the end of the stream.

ReadToEndAsync()

Přečte všechny znaky z aktuální pozice na konec proudu asynchronně a vrátí je jako jeden řetězec.Reads all characters from the current position to the end of the stream asynchronously and returns them as one string.

ReadToEndAsync()

Přečte všechny znaky z aktuální pozice na konec čtecího modulu textu asynchronně a vrátí je jako jeden řetězec.Reads all characters from the current position to the end of the text reader asynchronously and returns them as one string.

(Zděděno od TextReader)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Explicitní implementace rozhraní

IDisposable.Dispose()

Popis tohoto člena naleznete v tématu Dispose() .For a description of this member, see Dispose().

(Zděděno od TextReader)

Platí pro

Viz také