モジュール 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(System.out));
 

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

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

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

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

    • 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
      関連項目:
    • 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 - 入出力エラーが発生した場合