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

手記

この型は IDisposable インターフェイスを実装しますが、実際には破棄するリソースはありません。 つまり、Dispose() を直接呼び出すか、using (C#) や Using (Visual Basic) などの言語コンストラクトを使用して破棄する必要はありません。

次の表に、その他の一般的な I/O タスクまたは関連する 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(String, ReadOnlySpan<Object>)

Format(String, ReadOnlySpan<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(String, ReadOnlySpan<Object>)

Format(String, ReadOnlySpan<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)

非同期破棄から返されるタスクの待機を実行する方法を構成します。

適用対象

こちらもご覧ください