JavaTM Platform
Standard Ed. 6

java.io
クラス Writer

java.lang.Object
  上位を拡張 java.io.Writer
すべての実装されたインタフェース:
Closeable, Flushable, Appendable
直系の既知のサブクラス:
BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter

public abstract class Writer
extends Object
implements Appendable, Closeable, Flushable

文字ストリームに書き込むための abstract クラスです。サブクラスでの実装が必要なメソッドは、write(char[], int, int)、flush()、および close() だけです。ただし、ほとんどのサブクラスは、効率性の向上または機能の追加、あるいはその両方のために、ここで定義されるメソッドの一部をオーバーライドします。

導入されたバージョン:
JDK1.1
関連項目:
Writer, BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, FileWriter, PipedWriter, PrintWriter, StringWriter, Reader

フィールドの概要
protected  Object lock
          このストリームに対する処理の同期に使用するオブジェクトです。
 
コンストラクタの概要
protected Writer()
          ライター自体でクリティカルセクションが同期する文字ストリームライターを新しく作成します。
protected Writer(Object lock)
          指定されたオブジェクトでクリティカルセクションが同期する文字ストリームライターを新しく作成します。
 
メソッドの概要
 Writer append(char c)
          指定された文字をこのライターに追加します。
 Writer append(CharSequence csq)
          指定された文字シーケンスをこのライターに追加します。
 Writer append(CharSequence csq, int start, int end)
          指定された文字シーケンスのサブシーケンスをこのライターに追加します。
abstract  void close()
          ストリームを最初にフラッシュして、閉じます。
abstract  void flush()
          ストリームをフラッシュします。
 void write(char[] cbuf)
          文字の配列を書き込みます。
abstract  void write(char[] cbuf, int off, int len)
          文字の配列の一部を書き込みます。
 void write(int c)
          単一の文字を書き込みます。
 void write(String str)
          文字列を書き込みます。
 void write(String str, int off, int len)
          文字列の一部を書き込みます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

lock

protected Object lock
このストリームに対する処理の同期に使用するオブジェクトです。効率を良くするため、文字ストリームオブジェクトは、ほかのオブジェクトを使ってクリティカルセクションを保護することができます。そのため、サブクラスでは this ではなくこのフィールドのオブジェクトを使用するか、同期化したメソッドを使用するようにしてください。

コンストラクタの詳細

Writer

protected Writer()
ライター自体でクリティカルセクションが同期する文字ストリームライターを新しく作成します。


Writer

protected Writer(Object lock)
指定されたオブジェクトでクリティカルセクションが同期する文字ストリームライターを新しく作成します。

パラメータ:
lock - 同期するオブジェクト
メソッドの詳細

write

public void write(int c)
           throws IOException
単一の文字を書き込みます。書き込まれる文字は、指定された整数値の下位 16 ビットに格納されます。上位 16 ビットは無視されます。

有効な単一文字の出力をサポートするためのサブクラスでは、このメソッドをオーバーライドします。

パラメータ:
c - 書き込む文字を指定する int
例外:
IOException - 入出力エラーが発生した場合

write

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

パラメータ:
cbuf - 書き込む文字の配列
例外:
IOException - 入出力エラーが発生した場合

write

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

パラメータ:
cbuf - 文字の配列
off - 文字の書き込み開始オフセット
len - 書き込む文字数
例外:
IOException - 入出力エラーが発生した場合

write

public void write(String str)
           throws IOException
文字列を書き込みます。

パラメータ:
str - 書き込まれる文字列
例外:
IOException - 入出力エラーが発生した場合

write

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

パラメータ:
str - 文字列
off - 文字の書き込み開始オフセット
len - 書き込む文字数
例外:
IndexOutOfBoundsException - off が負の場合、len が負の場合、または off+len が負であるか、指定された文字列の長さよりも大きい場合
IOException - 入出力エラーが発生した場合

append

public Writer append(CharSequence csq)
              throws IOException
指定された文字シーケンスをこのライターに追加します。

このメソッドを out.append(csq) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。

out.write(csq.toString()) 

文字シーケンス csqtoString の仕様によっては、そのシーケンス全体が追加されない可能性もあります。たとえば、文字バッファーの toString メソッドを呼び出した場合、そのバッファーの位置とリミットによって決まる内容を持つサブシーケンスが返されます。

定義:
インタフェース Appendable 内の append
パラメータ:
csq - 追加される文字シーケンス。csqnull の場合は、このライターに「null」という 4 文字が追加される
戻り値:
このライター
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.5

append

public Writer append(CharSequence csq,
                     int start,
                     int end)
              throws IOException
指定された文字シーケンスのサブシーケンスをこのライターに追加します。Appendable です。

csqnull でないときに、このメソッドを out.append(csq, start, end) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。

out.write(csq.subSequence(start, end).toString()) 

定義:
インタフェース Appendable 内の append
パラメータ:
csq - 文字サブシーケンスの追加元となる文字シーケンス。csqnull の場合、csq に「null」の 4 文字が含まれるかのように文字が追加される
start - 文字サブシーケンスの最初の文字のインデックス
end - 文字サブシーケンスの最後の文字に続く文字のインデックス
戻り値:
このライター
例外:
IndexOutOfBoundsException - start または end が負の値の場合、startend より大きい場合、または endcsq.length() より大きい場合
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.5

append

public Writer append(char c)
              throws IOException
指定された文字をこのライターに追加します。

このメソッドを out.append(c) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。

out.write(c) 

定義:
インタフェース Appendable 内の append
パラメータ:
c - 追加する 16 ビット文字
戻り値:
このライター
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.5

flush

public abstract void flush()
                    throws IOException
ストリームをフラッシュします。ストリームが各種の write() メソッドにより書き込まれた文字をバッファーに保存してある場合は、これらの文字の目的の転送先にただちに文字を書き込みます。さらに、転送先が別の文字ストリームまたはバイトストリームの場合は、この送信先をフラッシュします。つまり、1 つの flush() の呼び出しで、関連する Writer および OutputStream のすべてのバッファーをフラッシュします。

このストリームの目的の転送先が、基本となるオペレーティングシステムによって提供される抽象化オブジェクト (ファイルなど) である場合、ストリームをフラッシュすることで、それまでにストリームに書き込まれたバイトがオペレーティングシステムに渡されて書き込まれることは保証されますが、ディスクドライブなどの物理デバイスに実際に書き込まれることは保証されません。

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

close

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

定義:
インタフェース Closeable 内の 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 も参照してください。