StringWriter クラス

定義

文字列に情報を書き込む TextWriter を実装します。 情報は、基になる StringBuilder に格納されます。

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

次のコード例では、二重間隔の文のグループから連続する段落を作成し、段落を元のテキストに変換する方法を示します。

using namespace System;
using namespace System::IO;
int main()
{
   String^ textReaderText = "TextReader is the abstract base "
   "class of StreamReader and StringReader, which read "
   "characters from streams and strings, respectively.\n\n"
   "Create an instance of TextReader to open a text file "
   "for reading a specified range of characters, or to "
   "create a reader based on an existing stream.\n\n"
   "You can also use an instance of TextReader to read "
   "text from a custom backing store using the same "
   "APIs you would use for a string or a stream.\n\n";
   Console::WriteLine(  "Original text:\n\n{0}", textReaderText );

   // From textReaderText, create a continuous paragraph 
   // with two spaces between each sentence.
      String^ aLine;
   String^ aParagraph;
   StringReader^ strReader = gcnew StringReader( textReaderText );
   while ( true )
   {
      aLine = strReader->ReadLine();
      if ( aLine != nullptr )
      {
         aParagraph = String::Concat( aParagraph, aLine,  " " );
      }
      else
      {
         aParagraph = String::Concat( aParagraph,  "\n" );
         break;
      }
   }

   Console::WriteLine(  "Modified text:\n\n{0}", aParagraph );
   
   // Re-create textReaderText from aParagraph.
   int intCharacter;
   Char convertedCharacter;
   StringWriter^ strWriter = gcnew StringWriter;
   strReader = gcnew StringReader( aParagraph );
   while ( true )
   {
      intCharacter = strReader->Read();
      
      // Check for the end of the string 
      // before converting to a character.
      if ( intCharacter == -1 )
            break;

      
      convertedCharacter = Convert::ToChar( intCharacter );
      if ( convertedCharacter == '.' )
      {
         strWriter->Write(  ".\n\n" );
         
         // Bypass the spaces between sentences.
         strReader->Read();
         strReader->Read();
      }
      else
      {
         strWriter->Write( convertedCharacter );
      }
   }

   Console::WriteLine(  "\nOriginal text:\n\n{0}", strWriter->ToString() );
}
using System;
using System.IO;

class StringRW
{
    static void Main()
    {
        string textReaderText = "TextReader is the abstract base " +
            "class of StreamReader and StringReader, which read " +
            "characters from streams and strings, respectively.\n\n" +

            "Create an instance of TextReader to open a text file " +
            "for reading a specified range of characters, or to " +
            "create a reader based on an existing stream.\n\n" +

            "You can also use an instance of TextReader to read " +
            "text from a custom backing store using the same " +
            "APIs you would use for a string or a stream.\n\n";

        Console.WriteLine("Original text:\n\n{0}", textReaderText);

        // From textReaderText, create a continuous paragraph
        // with two spaces between each sentence.
        string aLine, aParagraph = null;
        StringReader strReader = new StringReader(textReaderText);
        while(true)
        {
            aLine = strReader.ReadLine();
            if(aLine != null)
            {
                aParagraph = aParagraph + aLine + " ";
            }
            else
            {
                aParagraph = aParagraph + "\n";
                break;
            }
        }
        Console.WriteLine("Modified text:\n\n{0}", aParagraph);

        // Re-create textReaderText from aParagraph.
        int intCharacter;
        char convertedCharacter;
        StringWriter strWriter = new StringWriter();
        strReader = new StringReader(aParagraph);
        while(true)
        {
            intCharacter = strReader.Read();

            // Check for the end of the string
            // before converting to a character.
            if(intCharacter == -1) break;

            convertedCharacter = (char)intCharacter;
            if(convertedCharacter == '.')
            {
                strWriter.Write(".\n\n");

                // Bypass the spaces between sentences.
                strReader.Read();
                strReader.Read();
            }
            else
            {
                strWriter.Write(convertedCharacter);
            }
        }
        Console.WriteLine("\nOriginal text:\n\n{0}",
            strWriter.ToString());
    }
}
Option Explicit
Option Strict

Imports System.IO

Public Class StrReader

    Shared Sub Main()
    
        Dim textReaderText As String = "TextReader is the " & _
            "abstract base class of StreamReader and " & _
            "StringReader, which read characters from streams " & _
            "and strings, respectively." & _
            vbCrLf & vbCrLf & _
            "Create an instance of TextReader to open a text " & _
            "file for reading a specified range of characters, " & _
            "or to create a reader based on an existing stream." & _
            vbCrLf & vbCrLf & _
            "You can also use an instance of TextReader to read " & _
            "text from a custom backing store using the same " & _
            "APIs you would use for a string or a stream." & _
            vbCrLf & vbCrLf

        Console.WriteLine("Original text:" & vbCrLf & vbCrLf & _
            textReaderText)

        ' From textReaderText, create a continuous paragraph 
        ' with two spaces between each sentence.
        Dim aLine, aParagraph As String
        Dim strReader As New StringReader(textReaderText)
        While True
            aLine = strReader.ReadLine()
            If aLine Is Nothing Then
                aParagraph = aParagraph & vbCrLf
                Exit While
            Else
                aParagraph = aParagraph & aLine & " "
            End If
        End While
        Console.WriteLine("Modified text:" & vbCrLf & vbCrLf & _ 
            aParagraph)
    
        ' Re-create textReaderText from aParagraph.
        Dim intCharacter As Integer 
        Dim convertedCharacter As Char 
        Dim strWriter As New StringWriter()
        strReader = New StringReader(aParagraph)
        While True
            intCharacter = strReader.Read()

            ' Check for the end of the string 
            ' before converting to a character.
            If intCharacter = -1 Then
                Exit While
            End If

            convertedCharacter = Convert.ToChar(intCharacter)
            If convertedCharacter = "."C Then
                strWriter.Write("." & vbCrLf & vbCrLf)

                ' Bypass the spaces between sentences.
                strReader.Read()
                strReader.Read()
            Else
                strWriter.Write(convertedCharacter)
            End If
        End While
        Console.WriteLine(vbCrLf & "Original text:" & vbCrLf & _ 
            vbCrLf & strWriter.ToString())

    End Sub
End Class

注釈

StringWriter を使用すると、文字列に同期的または非同期的に書き込みを行うことができます。 または メソッド、または メソッドを使用してWrite(String)WriteAsync(String)一度Write(Char)WriteAsync(Char)文字列を書き込むことができます。 さらに、文字、文字の配列、または文字列の後に、いずれかのメソッドを使用して非同期的に行ターミネータを WriteLineAsync 記述できます。

注意

この型は IDisposable インターフェイスを実装しますが、実際に破棄するリソースはありません。 つまり、Dispose() を直接呼び出したり、using (C# の場合) または Using (Visual Basic の場合) といった言語構築を行ってリソースを破棄する必要はありません。

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

目的 参照項目
テキスト ファイルを作成します。 方法: テキストのファイルへの書き込み
テキスト ファイルに書き込みます。 方法: テキストのファイルへの書き込み
テキスト ファイルから読み取ります。 方法: ファイルからのテキストの読み取り
ファイルにテキストを追加します。 方法: ログ ファイルを開いて情報を追加する

File.AppendText

FileInfo.AppendText
ファイルのサイズを取得します。 FileInfo.Length
ファイルの属性を取得します。 File.GetAttributes
ファイルの属性を設定します。 File.SetAttributes
ファイルが存在するかどうかを確認します。 File.Exists
バイナリ ファイルから読み取ります。 方法: 新しく作成されたデータ ファイルに対して読み書きする
バイナリ ファイルに書き込みます。 方法: 新しく作成されたデータ ファイルに対して読み書きする

コンストラクター

StringWriter()

StringWriter クラスの新しいインスタンスを初期化します。

StringWriter(IFormatProvider)

指定した書式コントロールで StringWriter クラスの新しいインスタンスを初期化します。

StringWriter(StringBuilder)

指定した StringBuilder に書き込む StringWriter クラスの新しいインスタンスを初期化します。

StringWriter(StringBuilder, IFormatProvider)

指定した StringBuilder に書き込み、指定した書式プロバイダーを持つ、StringWriter クラスの新しいインスタンスを初期化します。

フィールド

CoreNewLine

この TextWriter で使用する改行文字を格納します。

(継承元 TextWriter)

プロパティ

Encoding

出力の書き込みに使用する Encoding を取得します。

FormatProvider

書式を制御するオブジェクトを取得します。

(継承元 TextWriter)
NewLine

現在の TextWriter で使用される行終端文字列を取得または設定します。

(継承元 TextWriter)

メソッド

Close()

現在の StringWriter、および基になるストリームを閉じます。

Close()

現在のライターを終了し、ライターに関連付けられたすべてのシステム リソースを解放します。

(継承元 TextWriter)
CreateObjRef(Type)

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

(継承元 MarshalByRefObject)
Dispose()

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

(継承元 TextWriter)
Dispose(Boolean)

StringWriter によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

DisposeAsync()

TextWriter オブジェクトによって使用されるすべてのリソースを非同期でリリースします。

(継承元 TextWriter)
Equals(Object)

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

(継承元 Object)
Flush()

現在のライターのすべてのバッファーをクリアし、バッファー内のデータを基になるデバイスに書き込みます。

(継承元 TextWriter)
FlushAsync()

現在のライターのすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。

FlushAsync()

現在のライターのすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。

(継承元 TextWriter)
FlushAsync(CancellationToken)

現在のライターのすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。

(継承元 TextWriter)
GetHashCode()

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

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

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

(継承元 MarshalByRefObject)
GetStringBuilder()

基になる StringBuilder を返します。

GetType()

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

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

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

(継承元 MarshalByRefObject)
MemberwiseClone()

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

(継承元 Object)
MemberwiseClone(Boolean)

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

(継承元 MarshalByRefObject)
ToString()

現在の StringWriter にこれまでに書き込まれた文字を格納する文字列を返します。

Write(Boolean)

Boolean 値のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(Char)

文字列に文字を書き込みます。

Write(Char[])

文字配列をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(Char[], Int32, Int32)

文字列に文字配列の一部を書き込みます。

Write(Decimal)

10 進値のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(Double)

8 バイト浮動小数点値のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(Int32)

4 バイト符号付き整数のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(Int64)

8 バイト符号付き整数のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(Object)

オブジェクトで ToString メソッドを呼び出して、そのオブジェクトのテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(ReadOnlySpan<Char>)

文字のスパンの文字列形式を現在の文字列に書き込みます。

Write(ReadOnlySpan<Char>)

文字スパンをテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(Single)

4 バイト浮動小数点値のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(String)

現在の文字列に文字列を書き込みます。

Write(String, Object)

Format(String, Object) メソッドと同じセマンティクスを使用して、書式設定された文字列をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(String, Object, Object)

Format(String, Object, Object) メソッドと同じセマンティクスを使用して、書式設定された文字列をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(String, Object, Object, Object)

Format(String, Object, Object, Object) メソッドと同じセマンティクスを使用して、書式設定された文字列をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(String, Object[])

Format(String, Object[]) メソッドと同じセマンティクスを使用して、書式設定された文字列をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(StringBuilder)

文字列ビルダーの文字列形式を現在の文字列に書き込みます。

Write(StringBuilder)

文字列ビルダーをテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(UInt32)

4 バイト符号なし整数のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
Write(UInt64)

8 バイト符号なし整数のテキスト表現をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteAsync(Char)

文字を非同期で文字列に書き込みます。

WriteAsync(Char)

文字をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteAsync(Char[])

文字配列をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteAsync(Char[], Int32, Int32)

文字の部分配列を文字列に非同期で書き込みます。

WriteAsync(Char[], Int32, Int32)

文字の部分配列をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

文字のメモリ領域を文字列に非同期で書き込みます。

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

文字メモリ領域をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteAsync(String)

現在の文字列に文字列を非同期的に書き込みます。

WriteAsync(String)

文字列をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteAsync(StringBuilder, CancellationToken)

文字列ビルダーのテキスト表現を文字列に非同期で書き込みます。

WriteAsync(StringBuilder, CancellationToken)

文字列ビルダーをテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteLine()

行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Boolean)

Boolean 値のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Char)

文字を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Char[])

文字配列を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Char[], Int32, Int32)

文字の部分配列を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Decimal)

10 進値のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Double)

8 バイト浮動小数点値のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Int32)

4 バイト符号付き整数のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Int64)

8 バイト符号付き整数のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Object)

オブジェクトで ToString メソッドを呼び出して、そのオブジェクトのテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(ReadOnlySpan<Char>)

テキスト表現、文字のスパンを、続いて行終端記号を文字列に書き込みます。

WriteLine(ReadOnlySpan<Char>)

文字スパンのテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(Single)

4 バイト浮動小数点値のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(String)

文字列を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(String, Object)

Format(String, Object) メソッドと同じセマンティクスを使用して、書式設定された文字列と新しい行をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(String, Object, Object)

Format(String, Object, Object) メソッドと同じセマンティクスを使用して、書式設定された文字列と新しい行をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(String, Object, Object, Object)

Format(String, Object) と同じセマンティクスを使用して、書式設定された文字列と新しい行をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(String, Object[])

Format(String, Object) と同じセマンティクスを使用して、書式設定された文字列と新しい行をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(StringBuilder)

文字列ビルダーのテキスト表現を、続いて行終端記号を文字列に書き込みます。

WriteLine(StringBuilder)

文字列ビルダーのテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(UInt32)

4 バイト符号なし整数のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLine(UInt64)

8 バイト符号なし整数のテキスト表現を、続いて行終端記号をテキスト ストリームに書き込みます。

(継承元 TextWriter)
WriteLineAsync()

行終端記号をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteLineAsync(Char)

文字を、続いて行終端記号を非同期で文字列に書き込みます。

WriteLineAsync(Char)

文字を、続いて行終端記号をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteLineAsync(Char[])

文字配列を、続いて行終端記号をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteLineAsync(Char[], Int32, Int32)

文字列の部分配列を、続いて行終端記号を非同期で文字列に書き込みます。

WriteLineAsync(Char[], Int32, Int32)

文字の部分配列を、続いて行終端記号をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

文字のメモリ領域の文字列形式を、続いて行終端記号を非同期で現在の文字列に書き込みます。

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

文字メモリ領域のテキスト表現を、続いて行終端記号をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteLineAsync(String)

文字列を、続いて行終端記号を非同期で現在の文字列を書き込みます。

WriteLineAsync(String)

文字列を、続いて行終端記号をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

文字列ビルダーの文字列形式を、続いて行終端記号を非同期で現在の文字列に書き込みます。

WriteLineAsync(StringBuilder, CancellationToken)

文字列ビルダーのテキスト表現を、続いて行終端記号をテキスト ストリームに非同期で書き込みます。

(継承元 TextWriter)

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

IDisposable.Dispose()

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

(継承元 TextWriter)

拡張メソッド

ConfigureAwait(IAsyncDisposable, Boolean)

非同期の破棄可能から返されるタスク上での待機がどのように実行されるかを構成します。

適用対象

こちらもご覧ください