CDC 1.1.2

java.io
クラス OutputStreamWriter

java.lang.Object
  上位を拡張 java.io.Writer
      上位を拡張 java.io.OutputStreamWriter
直系の既知のサブクラス:
FileWriter

public class OutputStreamWriter
extends Writer

OutputStreamWriter は文字ストリームからバイトストリームへの橋渡しの役目を持ち、文字データを書き込んで、それを指定された文字エンコーディングに従ってバイトに変換します。使用されるエンコーディングは、名前で指定することも、プラットフォームのデフォルトをそのまま使うこともできます。

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

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

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

「サロゲートペア」は、2 つの char 値によって表される文字です。\uD800 〜 \uDBFF の「上位」サロゲートと、それに続く \uDC00 〜 \uDFFF の「下位」サロゲートで構成されます。サロゲートペアによって表される文字が指定されたエンコーディングによってエンコードできない場合は、エンコーディング依存の「代替シーケンス」が出力ストリームに書き込まれます。

対応する下位サロゲートがない上位サロゲート、または対応する上位サロゲートがない下位サロゲートは、「不正なサロゲート要素」と呼ばれます。不正なサロゲート要素を含む文字ストリームを書き込むことはできません。不正なサロゲート要素を書き込んだ場合、このクラスのインスタンスの動作は保証されません。

導入されたバージョン:
JDK1.1
関連項目:
BufferedWriter, OutputStream, 文字エンコーディング

フィールドの概要
 
クラス java.io.Writer から継承されたフィールド
lock
 
コンストラクタの概要
OutputStreamWriter(OutputStream out)
          デフォルトの文字エンコーディングを使う OutputStreamWriter を作成します。
OutputStreamWriter(OutputStream out, String enc)
          指定された文字エンコーディングを使う OutputStreamWriter を作成します。
 
メソッドの概要
 void close()
          ストリームを閉じます。
 void flush()
          ストリームをフラッシュします。
 String getEncoding()
          このストリームによって使用されている文字エンコーディングの正規名を返します。
 void write(char[] cbuf, int off, int len)
          文字の配列の一部を書き込みます。
 void write(int c)
          単一の文字を書き込みます。
 void write(String str, int off, int len)
          文字列の一部を書き込みます。
 
クラス java.io.Writer から継承されたメソッド
write, write
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

OutputStreamWriter

public OutputStreamWriter(OutputStream out,
                          String enc)
                   throws UnsupportedEncodingException
指定された文字エンコーディングを使う OutputStreamWriter を作成します。

パラメータ:
out - OutputStream
enc - サポートされる文字エンコーディングの名前
例外:
UnsupportedEncodingException - 指定された文字エンコーディングがサポートされていない場合

OutputStreamWriter

public OutputStreamWriter(OutputStream out)
デフォルトの文字エンコーディングを使う OutputStreamWriter を作成します。

パラメータ:
out - OutputStream
メソッドの詳細

getEncoding

public String getEncoding()
このストリームによって使用されている文字エンコーディングの正規名を返します。

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

注:J2ME CDC では、互換名の概念がないため、文字エンコーディングの正規名のみが返されます。使用できる文字エンコーディングの正規名のリストについては、http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html を参照してください。

戻り値:
エンコーディング名を表す文字列。ストリームが閉じている場合は null
関連項目:
文字エンコーディング

write

public void write(int c)
           throws IOException
単一の文字を書き込みます。

オーバーライド:
クラス Writer 内の write
パラメータ:
c - 書き込む文字を指定する int
例外:
IOException - 入出力エラーが発生した場合

write

public void write(char[] cbuf,
                  int off,
                  int len)
           throws IOException
文字の配列の一部を書き込みます。

定義:
クラス Writer 内の write
パラメータ:
cbuf - 文字のバッファー
off - 文字の書き込み開始オフセット
len - 書き込む文字数
例外:
IOException - 入出力エラーが発生した場合

write

public void write(String str,
                  int off,
                  int len)
           throws IOException
文字列の一部を書き込みます。

オーバーライド:
クラス Writer 内の write
パラメータ:
str - 文字列
off - 文字の書き込み開始オフセット
len - 書き込む文字数
例外:
IOException - 入出力エラーが発生した場合

flush

public void flush()
           throws IOException
ストリームをフラッシュします。

定義:
クラス Writer 内の flush
例外:
IOException - 入出力エラーが発生した場合

close

public void close()
           throws IOException
ストリームを閉じます。

定義:
クラス Writer 内の close
例外:
IOException - 入出力エラーが発生した場合

CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.