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 セーフ ラッパーについては、 を参照してください。

メソッド Read(Char[], Int32, Int32)Write(Char[], Int32, Int32) メソッドは、 パラメーターで指定された文字数の読み取りおよび書き込みをオーバーロード count します。 これらは、 パラメーターで指定されたバイト数の読み取りおよび書き込みを行う と BufferedStream.Read BufferedStream.Write で区別 count されます。 メソッドは 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)
ReadToEnd()

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

ReadToEndAsync()

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

ReadToEndAsync()

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

(継承元 TextReader)
ToString()

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

(継承元 Object)

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

IDisposable.Dispose()

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

(継承元 TextReader)

適用対象

こちらもご覧ください