モジュール java.base
パッケージ java.io

クラスOutputStreamWriter

  • すべての実装されたインタフェース:
    Closeable, Flushable, Appendable, AutoCloseable
    直系の既知のサブクラス:
    FileWriter


    public class OutputStreamWriter
    extends Writer
    OutputStreamWriterは、文字ストリームからバイト・ストリームへの橋渡しの役目を持ちます。それに書き込まれた文字は、指定されたcharsetを使用してバイトにエンコードされます。 使用される文字セットは、名前で指定することも、明示的に渡すことも、またはプラットフォームのデフォルトの文字セットをそのまま使うこともできます。

    write()メソッドを呼び出すたびに、指定された文字に対してエンコーディング・コンバータが呼び出されます。 結果として得られるバイトは、バッファに蓄積されてからベースとなる出力ストリームに書き込まれます。 write()メソッドに渡される文字はバッファに入らないので注意してください。

    最大限に効率化するには、コンバータを頻繁に呼び出さないようにするためにBufferedWriterの内部にOutputStreamWriterをラップすることを考慮してください。 例を示します。

     Writer out
       = new BufferedWriter(new OutputStreamWriter(System.out));
     

    サロゲート・ペアは、2つのchar値によって表される文字です。\uD800から\uDBFFの上位サロゲートと、それに続く\uDC00から\uDFFFの下位サロゲートで構成されます。

    対応する下位サロゲートがない上位サロゲート、または対応する上位サロゲートがない下位サロゲートは、「不正なサロゲート要素」と呼ばれます。

    このクラスは、不正なサロゲート要素やマップ不可文字シーケンスを、常に文字セットのデフォルトの代替シーケンスで置き換えます。 エンコード処理をより強力に制御する必要がある場合は、CharsetEncoderクラスを使用してください。

    導入されたバージョン:
    1.1
    関連項目:
    BufferedWriterOutputStreamCharset
    • コンストラクタの詳細

      • OutputStreamWriter

        public OutputStreamWriter​(OutputStream out,
                                  String charsetName)
                           throws UnsupportedEncodingException
        指定された文字セットを使うOutputStreamWriterを作成します。
        パラメータ:
        out - OutputStream
        charsetName - サポートされているcharsetの名前
        例外:
        UnsupportedEncodingException - 指定されたエンコーディングがサポートされていない場合
      • OutputStreamWriter

        public OutputStreamWriter​(OutputStream out)
        デフォルトの文字セットを使うOutputStreamWriterを作成します。
        パラメータ:
        out - OutputStream
      • OutputStreamWriter

        public OutputStreamWriter​(OutputStream out,
                                  Charset cs)
        与えられた文字セットを使うOutputStreamWriterを作成します。
        パラメータ:
        out - OutputStream
        cs - charset
        導入されたバージョン:
        1.4
      • OutputStreamWriter

        public OutputStreamWriter​(OutputStream out,
                                  CharsetEncoder enc)
        与えられた文字セット・エンコーダを使うOutputStreamWriterを作成します。
        パラメータ:
        out - OutputStream
        enc - 文字セット・エンコーダ
        導入されたバージョン:
        1.4
    • メソッドの詳細

      • getEncoding

        public String getEncoding​()
        このストリームで使用される文字エンコーディングの名前を返します。

        エンコーディングに互換名がある場合は、その名前を返します。互換名がない場合は、エンコーディングの正規名を返します。

        このインスタンスがOutputStreamWriter(OutputStream, String)コンストラクタを使用して作成された場合、返される名前はエンコーディングに対して一意となり、そのコンストラクタに渡された名前とは異なることがあります。 ストリームが閉じられた場合、このメソッドはnullを返すことがあります。

        戻り値:
        このエンコーディングの互換名。ストリームが閉じている場合はnull
        関連項目:
        Charset
      • write

        public void write​(int c)
                   throws IOException
        単一の文字を書き込みます。
        オーバーライド:
        write、クラス: Writer
        パラメータ:
        c - 書き込まれる文字を指定するint
        例外:
        IOException - 入出力エラーが発生した場合
      • write

        public void write​(char[] cbuf,
                          int off,
                          int len)
                   throws IOException
        文字の配列の一部を書き込みます。
        定義:
        write、クラス: Writer
        パラメータ:
        cbuf - 文字のバッファ
        off - 文字の書込み開始オフセット
        len - 書き込む文字数
        例外:
        IndexOutOfBoundsException - offが負の場合、またはlenが負の場合、またはoff + lenが負の場合、または指定された配列の長さより大きい場合
        IOException - 入出力エラーが発生した場合
      • write

        public void write​(String str,
                          int off,
                          int len)
                   throws IOException
        文字列の一部を書き込みます。
        オーバーライド:
        write、クラス: Writer
        パラメータ:
        str - 文字列
        off - 文字の書込み開始オフセット
        len - 書き込む文字数
        例外:
        IndexOutOfBoundsException - offが負の場合、lenが負の場合、またはoff + lenが負であるか、指定された文字列の長さよりも大きい場合
        IOException - 入出力エラーが発生した場合
      • append

        public Writer append​(CharSequence csq,
                             int start,
                             int end)
                      throws IOException
        次のクラスからコピーされた説明: Writer
        指定された文字シーケンスのサブシーケンスをこのライターに追加します。 Appendable

        csqnullでないときに、このメソッドをout.append(csq, start, end)の形式で呼び出した場合、次の呼び出しとまったく同様に動作します。

        
             out.write(csq.subSequence(start, end).toString())
         
        定義:
        append、インタフェース: Appendable
        オーバーライド:
        append、クラス: Writer
        パラメータ:
        csq - サブシーケンスの追加元のcharシーケンス。 csqnullの場合は、csqnullという4 charが含まれているかのようにcharが追加される
        start - サブシーケンスの最初のcharのインデックス
        end - サブシーケンスの最後のcharのあとに続くcharのインデックス
        戻り値:
        このライター
        例外:
        IOException - 入出力エラーが発生した場合
      • append

        public Writer append​(CharSequence csq)
                      throws IOException
        次のクラスからコピーされた説明: Writer
        指定された文字シーケンスをこのライターに追加します。

        このメソッドをout.append(csq)の形式で呼び出した場合、次の呼び出しとまったく同様に動作します。

             out.write(csq.toString()) 

        charシーケンスcsqに対するtoStringの指定に応じて、シーケンス全体が追加されないこともあります。 たとえば、charバッファのtoStringメソッドを呼び出した場合、そのバッファの位置とリミットによって決まる内容を持つサブシーケンスが返されます。

        定義:
        append、インタフェース: Appendable
        オーバーライド:
        append、クラス: Writer
        パラメータ:
        csq - 追加するcharシーケンス。 csqnullの場合は、このライターにnullという4文字が追加される。
        戻り値:
        このライター
        例外:
        IOException - 入出力エラーが発生した場合
      • flush

        public void flush​()
                   throws IOException
        ストリームをフラッシュします。
        定義:
        flush、インタフェース: Flushable
        定義:
        flush、クラス: Writer
        例外:
        IOException - 入出力エラーが発生した場合
      • close

        public void close​()
                   throws IOException
        次のクラスからコピーされた説明: Writer
        ストリームを最初にフラッシュして、閉じます。 ストリームが閉じられたあとにwrite()またはflush()を呼び出すと、IOExceptionがスローされます。 すでに閉じられているストリームを閉じても、何の影響もありません。
        定義:
        close、インタフェース: AutoCloseable
        定義:
        close、インタフェース: Closeable
        定義:
        close、クラス: Writer
        例外:
        IOException - 入出力エラーが発生した場合