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
継承
属性

次の例では、 オブジェクトを使用して、C ドライブ上のディレクトリを一覧表示するファイルを記述し、 オブジェクトを使用して各ディレクトリ名の読み取りおよび表示を行う方法 StreamWriter 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 のインスタンスを使用します。 のこのインスタンスはバイトオーダー マーク (BOM) なしで構築されます。そのため、そのメソッドは UTF8Encoding 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)

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

StreamWriter(String, FileStreamOptions)

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

フィールド

CoreNewLine

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

(継承元 TextWriter)
Null

バッキング ストアを持たない書き込み専用の StreamWriter を提供します。

プロパティ

AutoFlush

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

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)
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(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(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)

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

適用対象

こちらもご覧ください