StreamReader Kelas

Definisi

TextReader Mengimplementasikan yang membaca karakter dari aliran byte dalam pengodean tertentu.

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
Warisan
StreamReader
Warisan
Atribut

Contoh

Contoh berikut menggunakan instans StreamReader untuk membaca teks dari file. Konstruktor yang digunakan dalam contoh ini tidak didukung untuk digunakan di Aplikasi Bursa Windows.

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

Contoh berikut membuat instans StreamReader objek dan memanggil metodenya ReadAsync untuk membaca file secara asinkron.

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.

Keterangan

StreamReader dirancang untuk input karakter dalam pengodean tertentu, sedangkan Stream kelas dirancang untuk input dan output byte. Gunakan StreamReader untuk membaca baris informasi dari file teks standar.

Penting

Jenis ini mengimplementasikan IDisposable antarmuka. Ketika Anda telah selesai menggunakan jenis , Anda harus membuangnya baik secara langsung atau tidak langsung. Untuk membuang jenis secara langsung, panggil metodenya Dispose dalam try/catch blok. Untuk membuangnya secara tidak langsung, gunakan konstruksi bahasa seperti using (di C#) atau Using (di Visual Basic). Untuk informasi selengkapnya, lihat bagian "Menggunakan Objek yang Mengimplementasikan IDisposable" di IDisposable topik antarmuka.

StreamReader default ke pengodean UTF-8 kecuali ditentukan sebaliknya, alih-alih default ke halaman kode ANSI untuk sistem saat ini. UTF-8 menangani karakter Unicode dengan benar dan memberikan hasil yang konsisten pada versi sistem operasi yang dilokalkan. Jika Anda mendapatkan pengodean karakter saat ini menggunakan CurrentEncoding properti , nilainya tidak dapat diandalkan sampai setelah metode pertama Read , karena pengodean deteksi otomatis tidak dilakukan sampai panggilan pertama ke Read metode .

Secara default, StreamReader bukan utas yang aman. Lihat TextReader.Synchronized untuk pembungkus aman utas.

Metode Read(Char[], Int32, Int32) dan Write(Char[], Int32, Int32) membebani baca dan tulis jumlah karakter yang ditentukan oleh count parameter . Ini harus dibedakan dari BufferedStream.Read dan BufferedStream.Write, yang membaca dan menulis jumlah byte yang ditentukan oleh count parameter . BufferedStream Gunakan metode hanya untuk membaca dan menulis jumlah integral elemen array byte.

Catatan

Saat membaca dari Stream, lebih efisien untuk menggunakan buffer yang berukuran sama dengan buffer internal aliran.

Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.

Konstruktor

StreamReader(Stream)

Menginisialisasi instans StreamReader baru kelas untuk aliran yang ditentukan.

StreamReader(Stream, Boolean)

Menginisialisasi instans StreamReader baru kelas untuk aliran yang ditentukan, dengan opsi deteksi tanda urutan byte yang ditentukan.

StreamReader(Stream, Encoding)

Menginisialisasi instans StreamReader baru kelas untuk aliran yang ditentukan, dengan pengodean karakter yang ditentukan.

StreamReader(Stream, Encoding, Boolean)

Menginisialisasi instans StreamReader baru kelas untuk aliran yang ditentukan, dengan opsi pengodean karakter dan deteksi tanda urutan byte yang ditentukan.

StreamReader(Stream, Encoding, Boolean, Int32)

Menginisialisasi instans StreamReader baru kelas untuk aliran yang ditentukan, dengan pengodean karakter yang ditentukan, opsi deteksi tanda urutan byte, dan ukuran buffer.

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

Menginisialisasi instans StreamReader baru kelas untuk aliran yang ditentukan berdasarkan pengodean karakter yang ditentukan, opsi deteksi tanda urutan byte, dan ukuran buffer, dan secara opsional membiarkan aliran terbuka.

StreamReader(String)

Menginisialisasi instans StreamReader baru kelas untuk nama file yang ditentukan.

StreamReader(String, Boolean)

Menginisialisasi instans StreamReader baru kelas untuk nama file yang ditentukan, dengan opsi deteksi tanda urutan byte yang ditentukan.

StreamReader(String, Encoding)

Menginisialisasi instans StreamReader baru kelas untuk nama file yang ditentukan, dengan pengodean karakter yang ditentukan.

StreamReader(String, Encoding, Boolean)

Menginisialisasi instans StreamReader baru kelas untuk nama file yang ditentukan, dengan opsi pengodean karakter dan deteksi tanda urutan byte yang ditentukan.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

Menginisialisasi instans StreamReader baru kelas untuk jalur file yang ditentukan, dengan pengodean karakter yang ditentukan, opsi deteksi tanda urutan byte, dan dikonfigurasi dengan objek yang ditentukan FileStreamOptions .

StreamReader(String, Encoding, Boolean, Int32)

Menginisialisasi instans StreamReader baru kelas untuk nama file yang ditentukan, dengan pengodean karakter yang ditentukan, opsi deteksi tanda urutan byte, dan ukuran buffer.

StreamReader(String, FileStreamOptions)

Menginisialisasi instans StreamReader baru kelas untuk jalur file yang ditentukan, menggunakan pengodean default, memungkinkan deteksi tanda urutan byte di awal file, dan dikonfigurasi dengan objek yang ditentukan FileStreamOptions .

Bidang

Null

Objek StreamReader di sekitar aliran kosong.

Properti

BaseStream

Mengembalikan aliran yang mendasar.

CurrentEncoding

Mendapatkan pengodean karakter saat ini yang digunakan objek saat ini StreamReader .

EndOfStream

Mendapatkan nilai yang menunjukkan apakah posisi aliran saat ini berada di akhir aliran.

Metode

Close()

StreamReader Menutup objek dan aliran yang mendasar, dan merilis sumber daya sistem apa pun yang terkait dengan pembaca.

Close()

TextReader Menutup dan merilis sumber daya sistem apa pun yang TextReaderterkait dengan .

(Diperoleh dari TextReader)
CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
DiscardBufferedData()

Menghapus buffer internal.

Dispose()

Merilis semua sumber daya yang TextReader digunakan oleh objek .

(Diperoleh dari TextReader)
Dispose(Boolean)

Menutup aliran yang mendasar, merilis sumber daya tidak terkelola yang digunakan oleh StreamReader, dan secara opsional merilis sumber daya terkelola.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()
Kedaluwarsa.

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
Peek()

Mengembalikan karakter berikutnya yang tersedia tetapi tidak menggunakannya.

Read()

Membaca karakter berikutnya dari aliran input dan memajukan posisi karakter dengan satu karakter.

Read(Char[], Int32, Int32)

Membaca maksimum karakter yang ditentukan dari aliran saat ini ke dalam buffer, dimulai pada indeks yang ditentukan.

Read(Span<Char>)

Membaca karakter dari aliran saat ini ke dalam rentang.

Read(Span<Char>)

Membaca karakter dari pembaca saat ini dan menulis data ke buffer yang ditentukan.

(Diperoleh dari TextReader)
ReadAsync(Char[], Int32, Int32)

Membaca jumlah karakter maksimum yang ditentukan dari aliran saat ini secara asinkron dan menulis data ke buffer, dimulai pada indeks yang ditentukan.

ReadAsync(Char[], Int32, Int32)

Membaca jumlah karakter maksimum yang ditentukan dari pembaca teks saat ini secara asinkron dan menulis data ke buffer, dimulai dari indeks yang ditentukan.

(Diperoleh dari TextReader)
ReadAsync(Memory<Char>, CancellationToken)

Secara asinkron membaca karakter dari aliran saat ini ke dalam blok memori.

ReadAsync(Memory<Char>, CancellationToken)

Secara asinkron membaca karakter dari aliran saat ini ke dalam blok memori.

(Diperoleh dari TextReader)
ReadBlock(Char[], Int32, Int32)

Membaca jumlah karakter maksimum yang ditentukan dari aliran saat ini dan menulis data ke buffer, dimulai pada indeks yang ditentukan.

ReadBlock(Char[], Int32, Int32)

Membaca jumlah karakter maksimum yang ditentukan dari pembaca teks saat ini dan menulis data ke buffer, dimulai pada indeks yang ditentukan.

(Diperoleh dari TextReader)
ReadBlock(Span<Char>)

Membaca karakter dari aliran saat ini dan menulis data ke buffer.

ReadBlock(Span<Char>)

Membaca karakter dari aliran saat ini dan menulis data ke buffer.

(Diperoleh dari TextReader)
ReadBlockAsync(Char[], Int32, Int32)

Membaca jumlah karakter maksimum yang ditentukan dari aliran saat ini secara asinkron dan menulis data ke buffer, dimulai pada indeks yang ditentukan.

ReadBlockAsync(Char[], Int32, Int32)

Membaca jumlah karakter maksimum yang ditentukan dari pembaca teks saat ini secara asinkron dan menulis data ke buffer, dimulai dari indeks yang ditentukan.

(Diperoleh dari TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

Secara asinkron membaca karakter dari aliran saat ini dan menulis data ke buffer.

ReadBlockAsync(Memory<Char>, CancellationToken)

Secara asinkron membaca karakter dari aliran saat ini dan menulis data ke buffer.

(Diperoleh dari TextReader)
ReadLine()

Membaca baris karakter dari aliran saat ini dan mengembalikan data sebagai string.

ReadLineAsync()

Membaca baris karakter secara asinkron dari aliran saat ini dan mengembalikan data sebagai string.

ReadLineAsync()

Membaca baris karakter secara asinkron dan mengembalikan data sebagai string.

(Diperoleh dari TextReader)
ReadLineAsync(CancellationToken)

Membaca baris karakter secara asinkron dari aliran saat ini dan mengembalikan data sebagai string.

ReadLineAsync(CancellationToken)

Membaca baris karakter secara asinkron dan mengembalikan data sebagai string.

(Diperoleh dari TextReader)
ReadToEnd()

Membaca semua karakter dari posisi saat ini ke akhir aliran.

ReadToEndAsync()

Membaca semua karakter dari posisi saat ini ke akhir aliran secara asinkron dan mengembalikannya sebagai satu string.

ReadToEndAsync()

Membaca semua karakter dari posisi saat ini ke akhir pembaca teks secara asinkron dan mengembalikannya sebagai satu string.

(Diperoleh dari TextReader)
ReadToEndAsync(CancellationToken)

Membaca semua karakter dari posisi saat ini ke akhir aliran secara asinkron dan mengembalikannya sebagai satu string.

ReadToEndAsync(CancellationToken)

Membaca semua karakter dari posisi saat ini ke akhir pembaca teks secara asinkron dan mengembalikannya sebagai satu string.

(Diperoleh dari TextReader)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IDisposable.Dispose()

Untuk deskripsi anggota ini, lihat Dispose().

(Diperoleh dari TextReader)

Berlaku untuk

Lihat juga