JavaTM Platform
Standard Ed. 6

java.io
クラス OutputStreamWriter

java.lang.Object
  上位を拡張 java.io.Writer
      上位を拡張 java.io.OutputStreamWriter
すべての実装されたインタフェース:
Closeable, Flushable, Appendable
直系の既知のサブクラス:
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 の「下位」サロゲートで構成されます。

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

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

導入されたバージョン:
JDK1.1
関連項目:
BufferedWriter, OutputStream, Charset

フィールドの概要
 
クラス java.io.Writer から継承されたフィールド
lock
 
コンストラクタの概要
OutputStreamWriter(OutputStream out)
          デフォルトの文字セットを使う OutputStreamWriter を作成します。
OutputStreamWriter(OutputStream out, Charset cs)
          与えられた文字セットを使う OutputStreamWriter を作成します。
OutputStreamWriter(OutputStream out, CharsetEncoder enc)
          与えられた文字セットエンコーダを使う OutputStreamWriter を作成します。
OutputStreamWriter(OutputStream out, String charsetName)
          指定された文字セットを使う 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 から継承されたメソッド
append, append, append, 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 を作成します。

パラメータ:
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
単一の文字を書き込みます。

オーバーライド:
クラス 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
ストリームをフラッシュします。

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

close

public void close()
           throws IOException
クラス Writer の記述:
ストリームを最初にフラッシュして、閉じます。ストリームが閉じられたあとに write() または flush() を呼び出すと、IOException がスローされます。すでに閉じられているストリームを閉じても、何の影響もありません。

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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。