StreamWriter クラス

定義

特定のエンコードでストリームに文字を書き込むための TextWriter を実装します。

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

次の例では、StreamWriter オブジェクトを使用して、C ドライブ上のディレクトリを一覧表示するファイルを書き込み、StreamReader オブジェクトを使用して各ディレクトリ名を読み取って表示する方法を示します。 アンマネージ リソースが正しく破棄されるように、using ステートメントでこれらのオブジェクトを使用することをお勧めします。 using ステートメントは、使用しているコードが完了したときに、オブジェクトの Dispose を自動的に呼び出します。 この例で使用するコンストラクターは、Windows ストア アプリでの使用はサポートされていません。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace StreamReadWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get the directories currently on the C drive.
            DirectoryInfo[] cDirs = new DirectoryInfo(@"c:\").GetDirectories();

            // Write each directory name to a file.
            using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
            {
                foreach (DirectoryInfo dir in cDirs)
                {
                    sw.WriteLine(dir.Name);
                }
            }

            // Read and show each line from the file.
            string line = "";
            using (StreamReader sr = new StreamReader("CDriveDirs.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
    }
}
Imports System.IO
Class Program

    Shared Sub Main()

        ' Get the directories currently on the C drive.
        Dim cDirs As DirectoryInfo() = New DirectoryInfo("c:\").GetDirectories()

        ' Write each directory name to a file.
        Using sw As StreamWriter = New StreamWriter("CDriveDirs.txt")
            For Each Dir As DirectoryInfo In cDirs
                sw.WriteLine(Dir.Name)
            Next
        End Using

        'Read and show each line from the file.
        Dim line As String = ""
        Using sr As StreamReader = New StreamReader("CDriveDirs.txt")
            Do
                line = sr.ReadLine()
                Console.WriteLine(line)
            Loop Until line Is Nothing
        End Using


    End Sub

End Class

注釈

StreamWriter は特定のエンコーディングでの文字出力用に設計されていますが、Stream から派生したクラスはバイト入力と出力用に設計されています。

大事な

この型は、IDisposable インターフェイスを実装します。 型の使用が完了したら、直接または間接的に破棄する必要があります。 型を直接破棄するには、try/catch ブロックでその Dispose メソッドを呼び出します。 間接的に破棄するには、using (C#) や Using (Visual Basic) などの言語コンストラクトを使用します。 詳細については、「IDisposable インターフェイス」トピックの「IDisposable を実装するオブジェクトの使用」セクションを参照してください。

StreamWriter は、特に指定しない限り、既定で UTF8Encoding のインスタンスを使用します。 UTF8Encoding のこのインスタンスはバイト オーダー マーク (BOM) なしで構築されるため、GetPreamble メソッドは空のバイト配列を返します。 このコンストラクターの既定の UTF-8 エンコードでは、無効なバイトに対して例外がスローされます。 この動作は、Encoding.UTF8 プロパティのエンコード オブジェクトによって提供される動作とは異なります。 BOM を指定し、無効なバイトで例外がスローされるかどうかを判断するには、StreamWriter(String, Boolean, Encoding)StreamWriterなどのエンコード オブジェクトをパラメーターとして受け入れるコンストラクターを使用します。

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

一般的な I/O タスクの一覧については、「一般的な I/O タスクの」を参照してください。

コンストラクター

StreamWriter(Stream)

UTF-8 エンコードと既定のバッファー サイズを使用して、指定したストリームの StreamWriter クラスの新しいインスタンスを初期化します。

StreamWriter(Stream, Encoding)

指定したエンコードと既定のバッファー サイズを使用して、指定したストリームの StreamWriter クラスの新しいインスタンスを初期化します。

StreamWriter(Stream, Encoding, Int32)

指定したエンコードとバッファー サイズを使用して、指定したストリームの StreamWriter クラスの新しいインスタンスを初期化します。

StreamWriter(Stream, Encoding, Int32, Boolean)

指定したエンコードとバッファー サイズを使用して、指定したストリームの StreamWriter クラスの新しいインスタンスを初期化し、必要に応じてストリームを開いたままにします。

StreamWriter(String)

既定のエンコードとバッファー サイズを使用して、指定したファイルの StreamWriter クラスの新しいインスタンスを初期化します。

StreamWriter(String, Boolean)

既定のエンコードとバッファー サイズを使用して、指定したファイルの StreamWriter クラスの新しいインスタンスを初期化します。 ファイルが存在する場合は、上書きまたは追加することができます。 ファイルが存在しない場合、このコンストラクターは新しいファイルを作成します。

StreamWriter(String, Boolean, Encoding)

指定したエンコードと既定のバッファー サイズを使用して、指定したファイルの StreamWriter クラスの新しいインスタンスを初期化します。 ファイルが存在する場合は、上書きまたは追加することができます。 ファイルが存在しない場合、このコンストラクターは新しいファイルを作成します。

StreamWriter(String, Boolean, Encoding, Int32)

指定したエンコードとバッファー サイズを使用して、指定したパス上の指定したファイルの StreamWriter クラスの新しいインスタンスを初期化します。 ファイルが存在する場合は、上書きまたは追加することができます。 ファイルが存在しない場合、このコンストラクターは新しいファイルを作成します。

StreamWriter(String, Encoding, FileStreamOptions)

指定したエンコードを使用し、指定した FileStreamOptions オブジェクトで構成された、指定したファイルの StreamWriter クラスの新しいインスタンスを初期化します。

StreamWriter(String, FileStreamOptions)

既定のエンコードを使用して、指定したファイルの StreamWriter クラスの新しいインスタンスを初期化し、指定した FileStreamOptions オブジェクトで構成します。

フィールド

CoreNewLine

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

(継承元 TextWriter)
Null

書き込み可能で読み取りはできないバッキング ストアのない StreamWriter を提供します。

プロパティ

AutoFlush

Write(Char)を呼び出すたびに、StreamWriter が基になるストリームにバッファーをフラッシュするかどうかを示す値を取得または設定します。

BaseStream

バッキング ストアとインターフェイスする基になるストリームを取得します。

Encoding

出力が書き込まれる Encoding を取得します。

FormatProvider

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

(継承元 TextWriter)
NewLine

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

(継承元 TextWriter)

メソッド

Close()

現在の StreamWriter オブジェクトと基になるストリームを閉じます。

Close()

現在のライターを閉じ、ライターに関連付けられているシステム リソースを解放します。

(継承元 TextWriter)
CreateObjRef(Type)

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

(継承元 MarshalByRefObject)
Dispose()

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

(継承元 TextWriter)
Dispose(Boolean)

バッファー内のデータを基になるストリームに書き込み、StreamWriterによって使用されるアンマネージ リソース、および必要に応じてマネージド リソースを解放します。

DisposeAsync()

バッファー内のデータを基になるストリームに非同期的に書き込み、StreamWriterによって使用されるアンマネージ リソースを解放します。

DisposeAsync()

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

(継承元 TextWriter)
Equals(Object)

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

(継承元 Object)
Finalize()

ガベージ コレクターによって再利用される前に、現在の StreamWriter のリソースを解放します。

Flush()

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

FlushAsync()

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

FlushAsync()

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

(継承元 TextWriter)
FlushAsync(CancellationToken)

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

FlushAsync(CancellationToken)

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

(継承元 TextWriter)
GetHashCode()

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

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

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

(継承元 MarshalByRefObject)
GetType()

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

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

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

(継承元 MarshalByRefObject)
MemberwiseClone()

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

(継承元 Object)
MemberwiseClone(Boolean)

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

(継承元 MarshalByRefObject)
ToString()

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

(継承元 Object)
Write(Boolean)

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

(継承元 TextWriter)
Write(Char)

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

Write(Char[])

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

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) メソッドと同じセマンティクスを使用して、書式設定された文字列をストリームに書き込みます。

Write(String, Object)

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

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

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

Write(String, Object, Object)

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

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

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

Write(String, Object, Object, Object)

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

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

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

Write(String, Object[])

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

(継承元 TextWriter)
Write(String, ReadOnlySpan<Object>)

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

Write(String, ReadOnlySpan<Object>)

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

(継承元 TextWriter)
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)

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

(継承元 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)

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

WriteLine(String)

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

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

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

WriteLine(String, Object)

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

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

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

WriteLine(String, Object, Object)

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

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

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

WriteLine(String, Object, Object, Object)

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

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

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

WriteLine(String, Object[])

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

(継承元 TextWriter)
WriteLine(String, ReadOnlySpan<Object>)

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

WriteLine(String, ReadOnlySpan<Object>)

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

(継承元 TextWriter)
WriteLine(StringBuilder)

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

(継承元 TextWriter)
WriteLine(UInt32)

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

(継承元 TextWriter)
WriteLine(UInt64)

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

(継承元 TextWriter)
WriteLineAsync()

行ターミネータをストリームに非同期的に書き込みます。

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)

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

(継承元 TextWriter)

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

IDisposable.Dispose()

このメンバーの説明については、Dispose()を参照してください。

(継承元 TextWriter)

拡張メソッド

ConfigureAwait(IAsyncDisposable, Boolean)

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

適用対象

こちらもご覧ください