Sdílet prostřednictvím


StreamReader Třída

Definice

Implementuje TextReader , který čte znaky z bajtového datového proudu v určitém kódování.

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 čtení textu ze souboru. Konstruktor použitý v tomto příkladu není podporován pro použití v aplikacích pro Windows Store.

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 objektu StreamReader a volá jeho ReadAsync metodu pro asynchronní čtení souboru.

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 určen pro zadávání znaků v určitém kódování, zatímco Stream třída je určena pro bajtový vstup a výstup. Slouží StreamReader ke čtení řádků informací ze standardního textového souboru.

Důležité

Tento typ implementuje rozhraní IDisposable. Jakmile skončíte s používáním typu, měli byste ho odstranit buď přímo, nebo nepřímo. Chcete-li typ odstranit přímo, zavolejte jeho Dispose metodu v bloku try/catch. Pokud ho chcete zlikvidovat nepřímo, použijte konstruktor jazyka, jako je using (v jazyce C#) nebo Using (v jazyce Visual Basic). Další informace naleznete v části Použití objektu, který implementuje IDisposable v IDisposable tématu rozhraní.

StreamReader výchozí hodnota kódování UTF-8, pokud není zadáno jinak, namísto výchozího nastavení na znakovou stránku ANSI pro aktuální systém. UTF-8 zpracovává znaky Unicode správně a poskytuje konzistentní výsledky na lokalizovaných verzích operačního systému. 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, dokud první volání Read metody.

Ve výchozím nastavení není bezpečné vlákno StreamReader . Podívejte TextReader.Synchronized se na obálku bezpečnou pro vlákno.

Write(Char[], Int32, Int32) Metoda Read(Char[], Int32, Int32) přetěžuje čtení a zápis počtu znaků určených parametremcount. Jedná se o rozlišení od BufferedStream.Read a BufferedStream.Write, které čtou a zapisují počet bajtů určených parametrem count . BufferedStream Používejte metody pouze pro čtení a zápis celočíselného počtu prvků pole bajtů.

Poznámka:

Při čtení z Streamúložiště je efektivnější použít vyrovnávací paměť, která je stejná jako vnitřní vyrovnávací paměť datového proudu.

Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.

Konstruktory

Name Description
StreamReader(Stream, Boolean)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud se zadanou možností detekce značky pořadí bajtů.

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 bajtů značky pořadí a velikost vyrovnávací paměti a volitelně ponechá datový proud otevřený.

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í detekce bajtů značky pořadí a velikostí vyrovnávací paměti.

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í detekce bajtů značky pořadí.

StreamReader(Stream, Encoding)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud se zadaným kódováním znaků.

StreamReader(Stream)

Inicializuje novou instanci StreamReader třídy pro zadaný datový proud.

StreamReader(String, Boolean)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru se zadanou možností detekce značky pořadí bajtů.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

Inicializuje novou instanci StreamReader třídy pro zadanou cestu k souboru se zadaným kódováním znaků, možností detekce bajtů značky pořadí a nakonfigurovaným zadaným FileStreamOptions objektem.

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 bajtů značky pořadí a velikostí vyrovnávací paměti.

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í detekce bajtů značky pořadí.

StreamReader(String, Encoding)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru se zadaným kódováním znaků.

StreamReader(String, FileStreamOptions)

Inicializuje novou instanci StreamReader třídy pro zadanou cestu k souboru pomocí výchozího kódování, povolí detekci bajtů pořadí značek na začátku souboru a nakonfiguruje se zadaným FileStreamOptions objektem.

StreamReader(String)

Inicializuje novou instanci StreamReader třídy pro zadaný název souboru.

Pole

Name Description
Null

Objekt StreamReader kolem prázdného datového proudu.

Vlastnosti

Name Description
BaseStream

Vrátí podkladový datový proud.

CurrentEncoding

Získá aktuální kódování znaků, které aktuální StreamReader objekt používá.

EndOfStream

Získá hodnotu, která určuje, zda aktuální pozice datového proudu je na konci datového proudu.

Metody

Name Description
Close()

StreamReader Zavře objekt a podkladový datový proud a uvolní všechny systémové prostředky přidružené ke čtenáři.

CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem.

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

Vymaže vnitřní vyrovnávací paměť.

Dispose()

Uvolní všechny prostředky používané objektem TextReader .

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

Zavře základní datový proud, uvolní nespravované prostředky používané StreamReadernástrojem a volitelně uvolní spravované prostředky.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

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

Získá Type aktuální instance.

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

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

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

Vytvoří mělkou kopii aktuálního Object.

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

Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.

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

Vrátí další dostupný znak, ale nebude ho využívat.

Read()

Přečte další znak ze vstupního datového proudu a posune pozici znaku o jeden znak.

Read(Char[], Int32, Int32)

Načte zadaný maximální počet znaků z aktuálního datového proudu do vyrovnávací paměti počínaje zadaným indexem.

Read(Span<Char>)

Přečte znaky z aktuálního datového proudu do rozsahu.

ReadAsync(Char[], Int32, Int32)

Načte zadaný maximální počet znaků z aktuálního datového proudu asynchronně a zapíše data do vyrovnávací paměti počínaje zadaným indexem.

ReadAsync(Memory<Char>, CancellationToken)

Asynchronně čte znaky z aktuálního datového proudu do bloku paměti.

ReadBlock(Char[], Int32, Int32)

Přečte zadaný maximální počet znaků z aktuálního datového proudu a zapíše data do vyrovnávací paměti počínaje zadaným indexem.

ReadBlock(Char[], Int32, Int32)

Přečte zadaný maximální počet znaků od aktuální čtečky textu a zapíše data do vyrovnávací paměti počínaje zadaným indexem.

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

Přečte znaky z aktuálního datového proudu a zapíše data do vyrovnávací paměti.

ReadBlockAsync(Char[], Int32, Int32)

Načte zadaný maximální počet znaků z aktuálního datového proudu asynchronně a zapíše data do vyrovnávací paměti počínaje zadaným indexem.

ReadBlockAsync(Memory<Char>, CancellationToken)

Asynchronně čte znaky z aktuálního datového proudu a zapisuje data do vyrovnávací paměti.

ReadLine()

Načte řádek znaků z aktuálního datového proudu a vrátí data jako řetězec.

ReadLineAsync()

Načte řádek znaků asynchronně z aktuálního datového proudu a vrátí data jako řetězec.

ReadLineAsync(CancellationToken)

Načte řádek znaků asynchronně z aktuálního datového proudu a vrátí data jako řetězec.

ReadToEnd()

Přečte všechny znaky z aktuální pozice na konec datového proudu.

ReadToEndAsync()

Přečte všechny znaky z aktuální pozice na konec datového proudu asynchronně a vrátí je jako jeden řetězec.

ReadToEndAsync(CancellationToken)

Přečte všechny znaky z aktuální pozice na konec datového proudu asynchronně a vrátí je jako jeden řetězec.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

Popis tohoto člena naleznete v tématu Dispose().

(Zděděno od TextReader)

Platí pro

Viz také