StreamReader StreamReader StreamReader StreamReader Class

定義

特定のエンコーディングのバイト ストリームから文字を読み込む TextReader を実装します。Implements a TextReader that reads characters from a byte stream in a particular encoding.

public ref class StreamReader : System::IO::TextReader
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class StreamReader : System.IO.TextReader
type StreamReader = class
    inherit TextReader
Public Class StreamReader
Inherits TextReader
継承
属性

次の例のインスタンスを使用してStreamReaderファイルからテキストを読み取る。The following example uses an instance of StreamReader to read text from a file. 使用するこの例で使用されるコンス トラクターはサポートされていませんWindows ストアWindows Storeアプリ。The constructor used in this example is not supported for use in Windows ストアWindows Store Apps.

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
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メソッドを非同期的にファイルを読み取る。The following example instantiates a StreamReader object and calls its ReadAsync method to read a file asynchronously.

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
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 is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. 使用StreamReader標準のテキスト ファイルから行の情報を読み取るためです。Use StreamReader for reading lines of information from a standard text file.

重要

この型は IDisposable インターフェイスを実装します。This type implements the IDisposable interface. 型の使用が完了したら、直接的または間接的に型を破棄する必要があります。When you have finished using the type, you should dispose of it either directly or indirectly. 直接的に型を破棄するには、try / catch ブロック内で Dispose メソッドを呼び出します。To dispose of the type directly, call its Dispose method in a try/catch block. 間接的に型を破棄するには、using (C# の場合) または Using (Visual Basic 言語) などの言語構成要素を使用します。To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). 詳細については、IDisposable インターフェイスに関するトピック内の「IDisposable を実装するオブジェクトの使用」セクションを参照してください。For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

StreamReader utf-8 エンコーディングの既定では、現在のシステム ANSI コード ページではなく、それ以外の場合、指定しない限り、既定値です。StreamReader defaults to UTF-8 encoding unless specified otherwise, instead of defaulting to the ANSI code page for the current system. Utf-8 は Unicode 文字を正しく処理し、オペレーティング システムのローカライズ版で一貫性のある結果を提供します。UTF-8 handles Unicode characters correctly and provides consistent results on localized versions of the operating system. 現在の文字エンコーディングを使用して表示された場合、CurrentEncodingプロパティ値は、信頼性の高いまで、最初より後Readメソッドは、最初の呼び出しまでエンコードの自動検出が実行されないため、Readメソッド。If you get the current character encoding using the CurrentEncoding property, the value is not reliable until after the first Read method, since encoding auto detection is not done until the first call to a Read method.

既定で、StreamReader安全なスレッドはありません。By default, a StreamReader is not thread safe. 参照してくださいTextReader.Synchronizedのスレッド セーフ ラッパー。See TextReader.Synchronized for a thread-safe wrapper.

Read(Char[], Int32, Int32)Write(Char[], Int32, Int32)メソッドのオーバー ロードで指定された文字数の読み書き、countパラメーター。The Read(Char[], Int32, Int32) and Write(Char[], Int32, Int32) method overloads read and write the number of characters specified by the count parameter. 識別する場合はこれらBufferedStream.ReadBufferedStream.Writeで指定したバイト数を読み書きする、countパラメーター。These are to be distinguished from BufferedStream.Read and BufferedStream.Write, which read and write the number of bytes specified by the count parameter. 使用して、BufferedStreamメソッドのみの読み取りと、バイトの整数の配列の要素を記述します。Use the BufferedStream methods only for reading and writing an integral number of byte array elements.

注意

読み取るときに、Streamストリームの内部バッファーと同じサイズであるバッファーを使用する方が効率的です。When reading from a Stream, it is more efficient to use a buffer that is the same size as the internal buffer of the stream.

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.

コンストラクター

StreamReader(Stream) StreamReader(Stream) StreamReader(Stream) StreamReader(Stream)

指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified stream.

StreamReader(Stream, Boolean) StreamReader(Stream, Boolean) StreamReader(Stream, Boolean) StreamReader(Stream, Boolean)

バイト順マーク検出オプションを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified stream, with the specified byte order mark detection option.

StreamReader(Stream, Encoding) StreamReader(Stream, Encoding) StreamReader(Stream, Encoding) StreamReader(Stream, Encoding)

文字エンコーディングを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding.

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

文字エンコーディングとバイト順マーク検出オプションを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding and byte order mark detection option.

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

文字エンコーディング、バイト順マーク検出オプション、およびバッファー サイズを設定して、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding, byte order mark detection option, and buffer size.

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

指定した文字エンコーディング、バイト順マーク検出オプション、およびバッファー サイズに基づいて、指定したストリーム用の StreamReader クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。Initializes a new instance of the StreamReader class for the specified stream based on the specified character encoding, byte order mark detection option, and buffer size, and optionally leaves the stream open.

StreamReader(String) StreamReader(String) StreamReader(String) StreamReader(String)

指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified file name.

StreamReader(String, Boolean) StreamReader(String, Boolean) StreamReader(String, Boolean) StreamReader(String, Boolean)

指定したバイト オーダー マーク検出オプションを使用して、指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified file name, with the specified byte order mark detection option.

StreamReader(String, Encoding) StreamReader(String, Encoding) StreamReader(String, Encoding) StreamReader(String, Encoding)

文字エンコーディングを設定して、指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding.

StreamReader(String, Encoding, Boolean) StreamReader(String, Encoding, Boolean) StreamReader(String, Encoding, Boolean) StreamReader(String, Encoding, Boolean)

文字エンコーディングとバイト順マーク検出オプションを設定して、指定したファイル名用の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding and byte order mark detection option.

StreamReader(String, Encoding, Boolean, Int32) StreamReader(String, Encoding, Boolean, Int32) StreamReader(String, Encoding, Boolean, Int32) StreamReader(String, Encoding, Boolean, Int32)

文字エンコーディング、バイト順マーク検出オプション、およびバッファー サイズを設定して、指定したファイル名の StreamReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding, byte order mark detection option, and buffer size.

フィールド

Null Null Null Null

空のストリームの StreamReader オブジェクト。A StreamReader object around an empty stream.

プロパティ

BaseStream BaseStream BaseStream BaseStream

基になるストリームを返します。Returns the underlying stream.

CurrentEncoding CurrentEncoding CurrentEncoding CurrentEncoding

現在の StreamReader オブジェクトが使用している現在の文字エンコーディングを取得します。Gets the current character encoding that the current StreamReader object is using.

EndOfStream EndOfStream EndOfStream EndOfStream

現在のストリームの位置がストリームの末尾かどうかを示す値を取得します。Gets a value that indicates whether the current stream position is at the end of the stream.

メソッド

Close() Close() Close() Close()

StreamReader オブジェクトと、その基になるストリームを閉じ、リーダーに関連付けられたすべてのシステム リソースを解放します。Closes the StreamReader object and the underlying stream, and releases any system resources associated with the reader.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
DiscardBufferedData() DiscardBufferedData() DiscardBufferedData() DiscardBufferedData()

内部バッファーをクリアします。Clears the internal buffer.

Dispose() Dispose() Dispose() Dispose()

この TextReader オブジェクトによって使用されているすべてのリソースを解放します。Releases all resources used by the TextReader object.

(Inherited from TextReader)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

基になるストリームを閉じ、StreamReader によって使用されているアンマネージド リソースを解放します。任意でマネージド リソースも解放します。Closes the underlying stream, releases the unmanaged resources used by the StreamReader, and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
Peek() Peek() Peek() Peek()

使用可能な次の文字を返しますが、その文字は使用されません。Returns the next available character but does not consume it.

Read() Read() Read() Read()

入力ストリームから次の文字を読み込み、1 文字分だけ文字位置を進めます。Reads the next character from the input stream and advances the character position by one character.

Read(Char[], Int32, Int32) Read(Char[], Int32, Int32) Read(Char[], Int32, Int32) Read(Char[], Int32, Int32)

指定したインデックスを開始位置として、現在のストリームから、指定された最大文字数をバッファー内に読み取ります。Reads a specified maximum of characters from the current stream into a buffer, beginning at the specified index.

Read(Span<Char>) Read(Span<Char>) Read(Span<Char>) Read(Span<Char>)
ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32)

指定した最大文字数を現在のストリームから非同期的に読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken)
ReadBlock(Char[], Int32, Int32) ReadBlock(Char[], Int32, Int32) ReadBlock(Char[], Int32, Int32) ReadBlock(Char[], Int32, Int32)

指定した最大文字数を現在のストリームから読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。Reads a specified maximum number of characters from the current stream and writes the data to a buffer, beginning at the specified index.

ReadBlock(Span<Char>) ReadBlock(Span<Char>) ReadBlock(Span<Char>) ReadBlock(Span<Char>)
ReadBlockAsync(Char[], Int32, Int32) ReadBlockAsync(Char[], Int32, Int32) ReadBlockAsync(Char[], Int32, Int32) ReadBlockAsync(Char[], Int32, Int32)

指定した最大文字数を現在のストリームから非同期的に読み取り、バッファーの指定したインデックス位置にそのデータを書き込みます。Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadBlockAsync(Memory<Char>, CancellationToken) ReadBlockAsync(Memory<Char>, CancellationToken) ReadBlockAsync(Memory<Char>, CancellationToken) ReadBlockAsync(Memory<Char>, CancellationToken)
ReadLine() ReadLine() ReadLine() ReadLine()

現在のストリームから 1 行分の文字を読み取り、そのデータを文字列として返します。Reads a line of characters from the current stream and returns the data as a string.

ReadLineAsync() ReadLineAsync() ReadLineAsync() ReadLineAsync()

現在のストリームから非同期的に 1 行分の文字を読み取り、そのデータを文字列として返します。Reads a line of characters asynchronously from the current stream and returns the data as a string.

ReadToEnd() ReadToEnd() ReadToEnd() ReadToEnd()

ストリームの現在位置から末尾までのすべての文字を読み込みます。Reads all characters from the current position to the end of the stream.

ReadToEndAsync() ReadToEndAsync() ReadToEndAsync() ReadToEndAsync()

現在位置からストリームの末尾まですべての文字を非同期的に読み取り、1 つの文字列として返します。Reads all characters from the current position to the end of the stream asynchronously and returns them as one string.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

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

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

このメンバーの説明については、Dispose() のトピックを参照してください。For a description of this member, see Dispose().

(Inherited from TextReader)

適用対象

こちらもご覧ください