StreamReader クラス

定義

特定のエンコーディングのバイト ストリームから文字を読み込む TextReader を実装します。

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
継承
StreamReader
継承
属性

次の例では、 の StreamReader インスタンスを使用してファイルからテキストを読み取ります。 この例で使用するコンストラクターは、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

次の例では、 オブジェクトを StreamReader インスタンス化し、そのメソッドを ReadAsync 呼び出してファイルを非同期的に読み取ります。

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.

注釈

StreamReader は特定のエンコードでの文字入力用に設計されています。一方 Stream 、 クラスはバイト入力と出力用に設計されています。 標準のテキスト ファイルから情報行を読み取る場合に使用 StreamReader します。

重要

この型は IDisposable インターフェイスを実装します。 型の使用が完了したら、直接的または間接的に型を破棄する必要があります。 直接的に型を破棄するには、try/catch ブロック内で Dispose メソッドを呼び出します。 間接的に型を破棄するには、using (C# の場合) または Using (Visual Basic 言語) などの言語構成要素を使用します。 詳細については、IDisposable インターフェイスに関するトピック内の「IDisposable を実装するオブジェクトの使用」セクションを参照してください。

StreamReader は、現在のシステムの ANSI コード ページに既定値を設定するのではなく、特に指定がない限り、UTF-8 エンコードに既定値を設定します。 UTF-8 は Unicode 文字を正しく処理し、オペレーティング システムのローカライズされたバージョンで一貫した結果を提供します。 プロパティを使用してCurrentEncoding現在の文字エンコードを取得した場合、エンコード自動検出はメソッドの最初の呼び出しReadまで行われないため、最初Readのメソッドの後まで値は信頼できません。

既定では、 StreamReader はスレッド セーフではありません。 スレッド セーフ ラッパーについては、 を参照してください TextReader.Synchronized

メソッドと Write(Char[], Int32, Int32) メソッドはRead(Char[], Int32, Int32)、 パラメーターでcount指定された文字数の読み取りと書き込みをオーバーロードします。 これらは、 パラメーターでcount指定されたBufferedStream.Readバイト数の読み取りと書き込みを行う と BufferedStream.Writeから区別されます。 バイト配列要素の BufferedStream 整数を読み書きする場合にのみ、 メソッドを使用します。

注意

から Stream読み取る場合は、ストリームの内部バッファーと同じサイズのバッファーを使用する方が効率的です。

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。

コンストラクター

StreamReader(Stream)

指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(Stream, Boolean)

バイト順マーク検出オプションを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(Stream, Encoding)

文字エンコーディングを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(Stream, Encoding, Boolean)

文字エンコーディングとバイト順マーク検出オプションを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(Stream, Encoding, Boolean, Int32)

文字エンコーディング、バイト順マーク検出オプション、およびバッファー サイズを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。

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

指定した文字エンコーディング、バイト順マーク検出オプション、およびバッファー サイズに基づいて、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。

StreamReader(String)

指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(String, Boolean)

指定したバイト オーダー マーク検出オプションを使用して、指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(String, Encoding)

文字エンコーディングを設定して、指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(String, Encoding, Boolean)

文字エンコーディングとバイト順マーク検出オプションを設定して、指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(String, Encoding, Boolean, FileStreamOptions)

指定したファイル パスの クラスの StreamReader 新しいインスタンスを、指定した文字エンコード、バイトオーダー マーク検出オプションを使用して初期化し、指定した FileStreamOptions オブジェクトで構成します。

StreamReader(String, Encoding, Boolean, Int32)

文字エンコーディング、バイト順マーク検出オプション、およびバッファー サイズを設定して、指定したファイル名の StreamReader クラスの新しいインスタンスを初期化します。

StreamReader(String, FileStreamOptions)

既定のエンコードを使用して、指定したファイル パスの クラスの StreamReader 新しいインスタンスを初期化し、ファイルの先頭でバイトオーダー マークを検出し、指定した FileStreamOptions オブジェクトで構成します。

フィールド

Null

空のストリームの StreamReader オブジェクト。

プロパティ

BaseStream

基になるストリームを返します。

CurrentEncoding

現在の StreamReader オブジェクトが使用している現在の文字エンコーディングを取得します。

EndOfStream

現在のストリームの位置がストリームの末尾かどうかを示す値を取得します。

メソッド

Close()

StreamReader オブジェクトと、その基になるストリームを閉じ、リーダーに関連付けられたすべてのシステム リソースを解放します。

Close()

TextReader を閉じ、その TextReader と関連付けられているシステム リソースを解放します。

(継承元 TextReader)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
DiscardBufferedData()

内部バッファーをクリアします。

Dispose()

この TextReader オブジェクトによって使用されているすべてのリソースを解放します。

(継承元 TextReader)
Dispose(Boolean)

基になるストリームを閉じ、StreamReader によって使用されているアンマネージド リソースを解放します。任意でマネージド リソースも解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
古い.

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
Peek()

使用可能な次の文字を返しますが、その文字は使用されません。

Read()

入力ストリームから次の文字を読み込み、1 文字分だけ文字位置を進めます。

Read(Char[], Int32, Int32)

指定したインデックスを開始位置として、現在のストリームから、指定された最大文字数をバッファー内に読み取ります。

Read(Span<Char>)

現在のストリームからスパンに文字を読み込みます。

Read(Span<Char>)

現在のリーダーから文字を読み取り、指定したバッファーにそのデータを書き込みます。

(継承元 TextReader)
ReadAsync(Char[], Int32, Int32)

指定した最大文字数を現在のストリームから非同期的に読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。

ReadAsync(Char[], Int32, Int32)

指定した最大文字数を現在のテキスト リーダーから非同期に読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。

(継承元 TextReader)
ReadAsync(Memory<Char>, CancellationToken)

現在のストリームからメモリ ブロックに文字を非同期に読み取ります。

ReadAsync(Memory<Char>, CancellationToken)

現在のストリームからメモリ ブロックに文字を非同期に読み取ります。

(継承元 TextReader)
ReadBlock(Char[], Int32, Int32)

指定した最大文字数を現在のストリームから読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。

ReadBlock(Char[], Int32, Int32)

指定した最大文字数を現在のテキスト リーダーから読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。

(継承元 TextReader)
ReadBlock(Span<Char>)

現在のストリームから文字を読み取り、データをバッファーに書き込みます。

ReadBlock(Span<Char>)

現在のストリームから文字を読み取り、データをバッファーに書き込みます。

(継承元 TextReader)
ReadBlockAsync(Char[], Int32, Int32)

指定した最大文字数を現在のストリームから非同期的に読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。

ReadBlockAsync(Char[], Int32, Int32)

指定した最大文字数を現在のテキスト リーダーから非同期に読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。

(継承元 TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

現在のストリームから非同期に文字を読み取り、データをバッファーに書き込みます。

ReadBlockAsync(Memory<Char>, CancellationToken)

現在のストリームから非同期に文字を読み取り、データをバッファーに書き込みます。

(継承元 TextReader)
ReadLine()

現在のストリームから 1 行分の文字を読み取り、そのデータを文字列として返します。

ReadLineAsync()

現在のストリームから非同期的に 1 行分の文字を読み取り、そのデータを文字列として返します。

ReadLineAsync()

1 行分の文字を非同期的に読み取り、そのデータを文字列として返します。

(継承元 TextReader)
ReadLineAsync(CancellationToken)

現在のストリームから非同期的に 1 行分の文字を読み取り、そのデータを文字列として返します。

ReadLineAsync(CancellationToken)

1 行分の文字を非同期的に読み取り、そのデータを文字列として返します。

(継承元 TextReader)
ReadToEnd()

ストリームの現在位置から末尾までのすべての文字を読み込みます。

ReadToEndAsync()

現在位置からストリームの末尾まですべての文字を非同期的に読み取り、1 つの文字列として返します。

ReadToEndAsync()

テキスト リーダーの現在位置から末尾まですべての文字を非同期的に読み取り、1 つの文字列として返します。

(継承元 TextReader)
ReadToEndAsync(CancellationToken)

現在位置からストリームの末尾まですべての文字を非同期的に読み取り、1 つの文字列として返します。

ReadToEndAsync(CancellationToken)

テキスト リーダーの現在位置から末尾まですべての文字を非同期的に読み取り、1 つの文字列として返します。

(継承元 TextReader)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

IDisposable.Dispose()

このメンバーの詳細については、「Dispose()」をご覧ください。

(継承元 TextReader)

適用対象

こちらもご覧ください