TextReader クラス

一連の文字を読み取ることができるリーダーを表します。

この型のすべてのメンバの一覧については、TextReader メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.IO.TextReader
         System.IO.StreamReader
         System.IO.StringReader

<Serializable>
MustInherit Public Class TextReader   Inherits MarshalByRefObject   Implements IDisposable
[C#]
[Serializable]
public abstract class TextReader : MarshalByRefObject, IDisposable
[C++]
[Serializable]
public __gc __abstract class TextReader : public   MarshalByRefObject, IDisposable
[JScript]
public
   Serializable
abstract class TextReader extends MarshalByRefObject   implements IDisposable

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

TextReader は、ストリームと文字列から文字を読み取る StreamReader および StringReader の抽象基本クラスです。テキスト ファイルを開いて、指定した範囲の文字を読み取りを行う場合や、既存のストリームに基づいてリーダーを作成する場合は、 TextReader のインスタンスを作成します。また、 TextReader のインスタンスを使用すると、文字列またはストリームに対して使用するものと同一の API でカスタム バッキング ストアからテキストを読み取ることができます。

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

TextReader クラスの有用なインスタンスを作成するには、派生クラスで少なくとも Peek メソッドと Read メソッドを実装する必要があります。

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

実行するタスク 参考例があるトピック
テキスト ファイルを作成する。 ファイルへのテキストの書き込み
テキスト ファイルに書き込む。 ファイルへのテキストの書き込み
テキスト ファイルから読み取る。 ファイルからのテキストの読み取り
テキストをファイルに追加する。 ログ ファイルのオープンと追加

File.AppendText

FileInfo.AppendText

ファイルのサイズを取得する。 FileInfo.Length
ファイルの属性を取得する。 File.GetAttributes
ファイルの属性を設定する。 File.SetAttributes
ファイルが存在するかどうかを判別する。 File.Exists
バイナリ ファイルから読み取る。 新しく作成したデータ ファイルの読み取りと書き込み
バイナリ ファイルに書き込む。 新しく作成したデータ ファイルの読み取りと書き込み

使用例

[Visual Basic, C#, C++] TextReader タイプと TextWriter タイプのポリモーフィックな動作の例を次に示します。 aStringWriteraStreamWriter は両方とも TextWriter タイプであるため、両方のオブジェクトで WriteVowel メソッドが呼び出され、それぞれのタイプに関連付けられた Write メソッドが実行されます。同様に、 aStringReaderaStreamReader の両方で ReadText メソッドが呼び出され、正しい ReadToEnd メソッドが実行されます。 aStringWriter および aStringReader のバッキング ストアは文字列であり、 aStreamWriter および aStreamReader のバッキング ストアはファイルです。

 
Imports System
Imports System.IO

Public Class TextRW

    Shared Sub Main()
        Dim aStringWriter, aStreamWriter As TextWriter
        aStringWriter = New StringWriter()
        aStreamWriter = New StreamWriter("InvalidPathChars.txt")
        
        WriteText(aStringWriter)
        WriteText(aStreamWriter)
        aStreamWriter.Close()
        
        Dim aStringReader, aStreamReader As TextReader
        aStringReader = New StringReader(aStringWriter.ToString())
        aStreamReader = New StreamReader("InvalidPathChars.txt")
        
        ReadText(aStringReader)
        ReadText(aStreamReader)
        aStreamReader.Close()
    End Sub

    Shared Sub WriteText(aTextWriter As TextWriter)
        aTextWriter.Write("Invalid file path characters are: ")
        aTextWriter.Write(Path.InvalidPathChars)
        aTextWriter.Write("."C)
    End Sub

    Shared Sub ReadText(aTextReader As TextReader)
        Console.WriteLine("From {0} - {1}", _
            aTextReader.GetType().Name, aTextReader.ReadToEnd())
    End Sub

End Class

[C#] 
using System;
using System.IO;

class TextRW
{
    static void Main()
    {
        TextWriter stringWriter = new StringWriter();
        using(TextWriter streamWriter = 
            new StreamWriter("InvalidPathChars.txt"))
        {
            WriteText(stringWriter);
            WriteText(streamWriter);
        }

        TextReader stringReader = 
            new StringReader(stringWriter.ToString());
        using(TextReader streamReader = 
            new StreamReader("InvalidPathChars.txt"))
        {
            ReadText(stringReader);
            ReadText(streamReader);
        }
    }

    static void WriteText(TextWriter textWriter)
    {
        textWriter.Write("Invalid file path characters are: ");
        textWriter.Write(Path.InvalidPathChars);
        textWriter.Write('.');
    }

    static void ReadText(TextReader textReader)
    {
        Console.WriteLine("From {0} - {1}", 
            textReader.GetType().Name, textReader.ReadToEnd());
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;

static void WriteText(TextWriter* textWriter)
{
    textWriter->Write("Invalid file path characters are: ");
    textWriter->Write(Path::InvalidPathChars);
    textWriter->Write(Char::Parse(S"."));
}

static void ReadText(TextReader* textReader)
{
    Console::WriteLine(S"From {0} - {1}", 
        textReader->GetType()->Name, textReader->ReadToEnd());
}

void main()
{
    TextWriter* stringWriter = new StringWriter(); 
    TextWriter* streamWriter = 
        new StreamWriter("InvalidPathChars.txt");

    WriteText(stringWriter);
    WriteText(streamWriter);
    streamWriter->Close();

    TextReader* stringReader = 
        new StringReader(stringWriter->ToString()); 
    TextReader* streamReader = 
        new StreamReader("InvalidPathChars.txt");

    ReadText(stringReader);
    ReadText(streamReader);
    streamReader->Close();
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.IO

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

TextReader メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み | 基本のファイル I/O | 新しく作成したデータ ファイルの読み取りと書き込み