JavaTM 2 Platform
Standard Ed. 5.0

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

文字ストリームに書き込むための抽象クラスです。サブクラスが実装する必要のあるメソッドは、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 - 書き込む文字数
例外:
IOException - 入出力エラーが発生した場合

append

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

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


     out.write(csq.toString()) 

文字シーケンス csq に対する toString の指定に応じて、シーケンス全体が追加されないこともあります。たとえば、文字バッファの toString を呼び出すと、内容がバッファの位置とリミットに依存するサブシーケンスが返されます。

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

append

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

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 2 Platform
Standard Ed. 5.0

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

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