public class OutputStreamWriter extends Writer
charsetを使用してバイトにエンコードされます。使用される文字セットは、名前で指定することも、明示的に渡すことも、またはプラットフォームのデフォルトの文字セットをそのまま使うこともできます。
write()メソッドを呼び出すたびに、指定された文字に対してエンコーディング・コンバータが呼び出されます。結果として得られるバイトは、バッファに蓄積されてからベースとなる出力ストリームに書き込まれます。このバッファのサイズは指定できますが、ほとんどの場合、デフォルトのサイズで十分です。write()メソッドに渡される文字はバッファに入らないので注意してください。
最大限に効率化するには、コンバータを頻繁に呼び出さないようにするためにBufferedWriterの内部にOutputStreamWriterをラップすることを考慮してください。例を示します。
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
「サロゲート・ペア」は、2つのchar値によって表される文字です。\uD800から\uDBFFの「上位」サロゲートと、それに続く\uDC00から\uDFFFの「下位」サロゲートで構成されます。
対応する下位サロゲートがない上位サロゲート、または対応する上位サロゲートがない下位サロゲートは、「不正なサロゲート要素」と呼ばれます。
このクラスは、不正なサロゲート要素やマップ不可文字シーケンスを、常に文字セットのデフォルトの代替シーケンスで置き換えます。エンコード処理をより強力に制御する必要がある場合は、CharsetEncoderクラスを使用してください。
BufferedWriter、OutputStream、Charset| コンストラクタと説明 |
|---|
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)
文字列の一部を書き込みます。
|
public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException
out - OutputStreamcharsetName - サポートされているcharsetの名前UnsupportedEncodingException - 指定されたエンコーディングがサポートされていない場合public OutputStreamWriter(OutputStream out)
out - OutputStreampublic OutputStreamWriter(OutputStream out, Charset cs)
out - OutputStreamcs - charsetpublic OutputStreamWriter(OutputStream out, CharsetEncoder enc)
out - OutputStreamenc - 文字セット・エンコーダpublic String getEncoding()
エンコーディングに互換名がある場合は、その名前を返します。互換名がない場合は、エンコーディングの正規名を返します。
このインスタンスがOutputStreamWriter(OutputStream, String)コンストラクタを使用して作成された場合、返される名前はエンコーディングに対して一意となり、そのコンストラクタに渡された名前とは異なることがあります。ストリームが閉じられた場合、このメソッドはnullを返すことがあります。
nullCharsetpublic void write(int c)
throws IOException
write、クラス: Writerc - 書き込まれる文字を指定するintIOException - 入出力エラーが発生した場合public void write(char[] cbuf,
int off,
int len)
throws IOException
write、クラス: Writercbuf - 文字のバッファoff - 文字の書込み開始オフセットlen - 書き込む文字数IOException - 入出力エラーが発生した場合public void write(String str, int off, int len) throws IOException
write、クラス: Writerstr - 文字列off - 文字の書込み開始オフセットlen - 書き込む文字数IOException - 入出力エラーが発生した場合public void flush()
throws IOException
flush、インタフェース: Flushableflush、クラス: WriterIOException - 入出力エラーが発生した場合public void close()
throws IOException
Writerclose、インタフェース: Closeableclose、インタフェース: AutoCloseableclose、クラス: WriterIOException - 入出力エラーが発生した場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.