- 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
- 関連項目:
BufferedWriter
、OutputStream
、Charset
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 OutputStreamWriter(OutputStream out)
デフォルトの文字セットを使うOutputStreamWriterを作成します。OutputStreamWriter(OutputStream out, String charsetName)
指定された文字セットを使うOutputStreamWriterを作成します。OutputStreamWriter(OutputStream out, Charset cs)
与えられた文字セットを使うOutputStreamWriterを作成します。OutputStreamWriter(OutputStream out, CharsetEncoder enc)
与えられた文字セット・エンコーダを使うOutputStreamWriterを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
flush()
ストリームをフラッシュします。String
getEncoding()
このストリームで使用される文字エンコーディングの名前を返します。void
write(char[] cbuf, int off, int len)
文字の配列の一部を書き込みます。void
write(int c)
単一の文字を書き込みます。void
write(String str, int off, int len)
文字列の一部を書き込みます。
-
-
-
コンストラクタの詳細
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException
指定された文字セットを使うOutputStreamWriterを作成します。- パラメータ:
out
- OutputStreamcharsetName
- サポートされているcharset
の名前- 例外:
UnsupportedEncodingException
- 指定されたエンコーディングがサポートされていない場合
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out)
デフォルトの文字セットを使うOutputStreamWriterを作成します。- パラメータ:
out
- OutputStream
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out, Charset cs)
与えられた文字セットを使うOutputStreamWriterを作成します。- パラメータ:
out
- OutputStreamcs
- charset- 導入されたバージョン:
- 1.4
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out, CharsetEncoder enc)
与えられた文字セット・エンコーダを使うOutputStreamWriterを作成します。- パラメータ:
out
- OutputStreamenc
- 文字セット・エンコーダ- 導入されたバージョン:
- 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
- 入出力エラーが発生した場合
-
flush
public void flush() throws IOException
ストリームをフラッシュします。- 定義:
flush
、インタフェースFlushable
- 定義:
flush
、クラスWriter
- 例外:
IOException
- 入出力エラーが発生した場合
-
-