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

クラスOutputStreamWriter

java.lang.Object
java.io.Writer
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(anOutputStream));
 

「サロゲート・ペア」は、2つのchar値のシーケンスで表される文字です: \uD800'から\uDBFF'の範囲のhighサロゲート、続いて\uDC00'から\uDFFF'.の範囲のlowサロゲート

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

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

導入されたバージョン:
1.1
関連項目:
  • フィールドのサマリー

    クラス java.io.Writerで宣言されたフィールド

    lock
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    デフォルトの文字エンコーディングを使用するOutputStreamWriterを作成します。outPrintStreamで、印刷ストリームで使用される文字セットです。
    指定された文字セットを使うOutputStreamWriterを作成します。
    与えられた文字セットを使うOutputStreamWriterを作成します。
    与えられた文字セット・エンコーダを使うOutputStreamWriterを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    ストリームを最初にフラッシュして、閉じます。
    void
    ストリームをフラッシュします。
    このストリームで使用される文字エンコーディングの名前を返します。
    void
    write(char[] cbuf, int off, int len)
    文字の配列の一部を書き込みます。
    void
    write(int c)
    単一の文字を書き込みます。
    void
    write(String str, int off, int len)
    文字列の一部を書き込みます。

    クラス java.io.Writerで宣言されたメソッド

    append, append, append, nullWriter, write, write

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • OutputStreamWriter

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

      public OutputStreamWriter(OutputStream out)
      デフォルトの文字エンコーディングを使用するOutputStreamWriterを作成します。outPrintStreamで、印刷ストリームで使用される文字セットです。
      パラメータ:
      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
      関連項目:
    • 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 - 入出力エラーが発生した場合
    • 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 - 入出力エラーが発生した場合