StreamReader Osztály

Definíció

Olyan karaktereket TextReader implementál, amelyek egy bájtfolyamból olvasnak be karaktereket egy adott kódolásban.

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
Öröklődés
StreamReader
Öröklődés
Attribútumok

Példák

Az alábbi példa egy fájl szövegének olvasására StreamReader szolgáló példányt használ. Az ebben a példában használt konstruktor nem támogatott Windows Áruházbeli alkalmazásokban való használatra.

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

Az alábbi példa létrehoz egy StreamReader objektumot, és meghívja annak metódusát ReadAsync egy fájl aszinkron olvasására.

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.

Megjegyzések

StreamReader karakterbemenetre tervezték egy adott kódolásban, míg az Stream osztály bájtos bemenetre és kimenetre lett tervezve. Szabványos szövegfájlból származó információsorok olvasására használható StreamReader .

Important

Ez a típus implementálja a IDisposable felületet. Ha befejezte a típus használatát, közvetlenül vagy közvetve kell megsemmisítenie. A típus közvetlen ártalmatlanításához hívja meg a Dispose metódust egy try/catch blokkban. Ha közvetve szeretné megsemmisíteni, használjon olyan nyelvi szerkezetet, mint a using (C#-ban) vagy Using (a Visual Basicben). További információ: "Az IDisposable-t megvalósító objektum használata" című szakasz a IDisposable felület témakörében.

StreamReader alapértelmezés szerint az UTF-8 kódolás lesz, kivéve, ha másként van megadva, ahelyett, hogy az aktuális rendszer ANSI-kódlapjára alapértelmezettként szolgál. Az UTF-8 megfelelően kezeli a Unicode-karaktereket, és konzisztens eredményeket biztosít az operációs rendszer honosított verzióihoz. Ha a tulajdonság használatával kapja meg az CurrentEncoding aktuális karakterkódolást, az érték csak az első Read módszer után megbízható, mivel az automatikus észlelés kódolása csak a metódus első hívásáig Read történik.

Alapértelmezés szerint az a StreamReader nem biztonságos szál. Tekintse meg TextReader.Synchronized a szálbiztos burkolót.

A Read(Char[], Int32, Int32) metódus túlterheli Write(Char[], Int32, Int32) a paraméter által megadott karakterek olvasását és írását count . Ezeket meg kell különböztetni BufferedStream.ReadBufferedStream.Writea paraméter által megadott bájtok számának olvasásához és írásához count . BufferedStream A metódusokat csak bájttömbelemek egész számának olvasására és írására használhatja.

Note

A streamből Streamvaló olvasáskor hatékonyabb egy olyan puffer használata, amely megegyezik a stream belső pufferével.

A gyakori I/O-feladatok listáját a Gyakori I/O-feladatok című témakörben találja.

Konstruktorok

Name Description
StreamReader(Stream, Boolean)

Inicializálja a StreamReader megadott stream osztályának új példányát a megadott bájtsorrendjel-észlelési beállítással.

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

Inicializálja a StreamReader megadott stream osztályának egy új példányát a megadott karakterkódolás, a bájtsorrend-jelészlelési beállítás és a pufferméret alapján, és opcionálisan nyitva hagyja a streamet.

StreamReader(Stream, Encoding, Boolean, Int32)

Inicializálja a StreamReader megadott stream osztályának új példányát a megadott karakterkódolással, a bájtsorrendjelek észlelésével és a puffer méretével.

StreamReader(Stream, Encoding, Boolean)

Inicializálja a StreamReader megadott stream osztályának új példányát a megadott karakterkódolással és bájtsorrendjel-észlelési beállítással.

StreamReader(Stream, Encoding)

Inicializálja a StreamReader megadott stream osztályának új példányát a megadott karakterkódolással.

StreamReader(Stream)

Inicializálja a StreamReader megadott stream osztályának új példányát.

StreamReader(String, Boolean)

Inicializálja az StreamReader osztály új példányát a megadott fájlnévhez a megadott bájtsorrendjel-észlelési beállítással.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

Inicializálja a StreamReader megadott fájl elérési útjának osztályának új példányát a megadott karakterkódolással, bájtsorrend-jelészlelési beállítással és a megadott FileStreamOptions objektummal konfigurálva.

StreamReader(String, Encoding, Boolean, Int32)

Inicializálja a StreamReader megadott fájlnév osztályának új példányát a megadott karakterkódolással, a bájtsorrendjelek észlelésével és a puffer méretével.

StreamReader(String, Encoding, Boolean)

Inicializálja a StreamReader megadott fájlnév osztályának új példányát a megadott karakterkódolással és bájtsorrendjel-észlelési beállítással.

StreamReader(String, Encoding)

Inicializálja a StreamReader megadott fájlnév osztályának új példányát a megadott karakterkódolással.

StreamReader(String, FileStreamOptions)

Inicializálja a StreamReader megadott fájlútvonal osztályának új példányát az alapértelmezett kódolással, lehetővé téve a bájtsorrendjelek észlelését a fájl elején, és konfigurálja a megadott FileStreamOptions objektummal.

StreamReader(String)

Inicializálja az StreamReader osztály új példányát a megadott fájlnévhez.

Mezők

Name Description
Null

Egy StreamReader üres stream körüli objektum.

Tulajdonságok

Name Description
BaseStream

A mögöttes streamet adja vissza.

CurrentEncoding

Lekéri az aktuális StreamReader objektum által használt aktuális karakterkódolást.

EndOfStream

Olyan értéket kap, amely jelzi, hogy az aktuális stream pozíciója a stream végén van-e.

Metódusok

Name Description
Close()

Bezárja az StreamReader objektumot és az alapul szolgáló streamet, és felszabadítja az olvasóhoz társított rendszererőforrásokat.

CreateObjRef(Type)

Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt.

(Öröklődés forrása MarshalByRefObject)
DiscardBufferedData()

Törli a belső puffert.

Dispose()

Felszabadítja az objektum által használt összes erőforrást TextReader .

(Öröklődés forrása TextReader)
Dispose(Boolean)

Bezárja a mögöttes streamet, felszabadítja a nem felügyelt StreamReadererőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetLifetimeService()
Elavult.

Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot.

(Öröklődés forrása MarshalByRefObject)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
InitializeLifetimeService()
Elavult.

Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához.

(Öröklődés forrása MarshalByRefObject)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MemberwiseClone(Boolean)

Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre.

(Öröklődés forrása MarshalByRefObject)
Peek()

A következő elérhető karaktert adja vissza, de nem használja.

Read()

Beolvassa a következő karaktert a bemeneti adatfolyamból, és a karakter pozícióját egy karakter előrelépteti.

Read(Char[], Int32, Int32)

A megadott számú karakter beolvasása az aktuális streamből egy pufferbe, a megadott indextől kezdve.

Read(Span<Char>)

Beolvassa az aktuális streamben lévő karaktereket egy spanba.

ReadAsync(Char[], Int32, Int32)

Beolvassa a megadott maximális számú karaktert az aktuális streamből aszinkron módon, és a megadott indextől kezdve egy pufferbe írja az adatokat.

ReadAsync(Memory<Char>, CancellationToken)

Aszinkron módon beolvassa a karaktereket az aktuális streamből egy memóriablokkba.

ReadBlock(Char[], Int32, Int32)

Beolvassa a megadott számú karaktert az aktuális streamből, és a megadott indextől kezdve egy pufferbe írja az adatokat.

ReadBlock(Char[], Int32, Int32)

Beolvassa a megadott számú karaktert az aktuális szövegolvasóból, és a megadott indextől kezdve egy pufferbe írja az adatokat.

(Öröklődés forrása TextReader)
ReadBlock(Span<Char>)

Beolvassa a karaktereket az aktuális streamből, és egy pufferbe írja az adatokat.

ReadBlockAsync(Char[], Int32, Int32)

Beolvassa a megadott maximális számú karaktert az aktuális streamből aszinkron módon, és a megadott indextől kezdve egy pufferbe írja az adatokat.

ReadBlockAsync(Memory<Char>, CancellationToken)

Aszinkron módon beolvassa a karaktereket az aktuális adatfolyamból, és egy pufferbe írja az adatokat.

ReadLine()

Beolvas egy karaktersort az aktuális adatfolyamból, és sztringként adja vissza az adatokat.

ReadLineAsync()

Egy karaktersort aszinkron módon olvas be az aktuális adatfolyamból, és sztringként adja vissza az adatokat.

ReadLineAsync(CancellationToken)

Egy karaktersort aszinkron módon olvas be az aktuális adatfolyamból, és sztringként adja vissza az adatokat.

ReadToEnd()

Beolvassa az összes karaktert az aktuális pozíciótól a stream végéig.

ReadToEndAsync()

Beolvassa az összes karaktert az aktuális pozíciótól a stream végéig aszinkron módon, és egy sztringként adja vissza őket.

ReadToEndAsync(CancellationToken)

Beolvassa az összes karaktert az aktuális pozíciótól a stream végéig aszinkron módon, és egy sztringként adja vissza őket.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
IDisposable.Dispose()

Ennek a tagnak a leírását lásd Dispose(): .

(Öröklődés forrása TextReader)

A következőre érvényes:

Lásd még