モジュール java.base
パッケージ java.io

クラスBufferedWriter

java.lang.Object
java.io.Writer
java.io.BufferedWriter
すべての実装されたインタフェース:
Closeable, Flushable, Appendable, AutoCloseable

public class BufferedWriter extends Writer
文字をバッファリングすることによって、文字、配列、または文字列を効率良く文字型出力ストリームに書き込みます。

バッファのサイズは、デフォルト値のままにすることも、特定の値を指定することもできます。 デフォルト値は、通常の使い方では十分な大きさです。

システム・プロパティline.separatorで定義されている、プラットフォーム独自の行セパレータの概念を使用するnewLine()メソッドが用意されています。 すべてのプラットフォームが改行文字('\n')で行を終端させるわけではありません。 改行文字を直接書き込むよりも、このメソッドを呼び出して行を終了させることをお薦めします。

一般的に、Writerは、その出力をただちにベースとなる文字型ストリームまたはバイト・ストリームに送信します。 プロンプト出力を必要とする場合以外では、FileWriterやOutputStreamWriterのようなWriterから直接write()オペレーションを呼び出すのは効率が悪いので、BufferedWriterでラップすることをお薦めします。 たとえば、

 PrintWriter out
   = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
 
この例はPrintWriterのファイルへの出力をバッファリングします。 バッファリングしない場合は、print()メソッドを呼び出すたびに文字をバイトに変換してただちにファイルに書き込むので、効率が非常に悪くなります。

導入されたバージョン:
1.1
関連項目:
  • フィールドのサマリー

    クラス java.io.Writerで宣言されたフィールド

    lock
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    デフォルト・サイズの出力バッファでバッファリングされた、文字型出力ストリームを作成します。
    BufferedWriter(Writer out, int sz)
    指定されたサイズの出力バッファでバッファリングされた、文字型出力ストリームを新しく作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    ストリームを最初にフラッシュして、閉じます。
    void
    ストリームをフラッシュします。
    void
    改行文字を書き込みます。
    void
    write(char[] cbuf, int off, int len)
    文字の配列の一部を書き込みます。
    void
    write(int c)
    単一の文字を書き込みます。
    void
    write(String s, int off, int len)
    Stringの一部を書き込みます。

    クラス java.io.Writerで宣言されたメソッド

    append, append, append, nullWriter, write, write

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • BufferedWriter

      public BufferedWriter(Writer out)
      デフォルト・サイズの出力バッファでバッファリングされた、文字型出力ストリームを作成します。
      パラメータ:
      out - Writer
    • BufferedWriter

      public BufferedWriter(Writer out, int sz)
      指定されたサイズの出力バッファでバッファリングされた、文字型出力ストリームを新しく作成します。
      パラメータ:
      out - Writer
      sz - 出力バッファのサイズ。正の整数
      例外:
      IllegalArgumentException - sz <= 0の場合
  • メソッドの詳細

    • 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
      文字の配列の一部を書き込みます。

      通常このメソッドは、指定された配列からこのストリームのバッファへ文字を格納し、必要に応じてベースとなるストリームにバッファをフラッシュします。 しかし、要求された長さがこのストリームのバッファと同じ大きさ以上の場合、このメソッドはバッファをフラッシュし、その文字を直接ベースとなるストリームに書き込みます。 このため、余分なBufferedWriterがデータを不必要にコピーすることがありません。

      定義:
      write、クラスWriter
      パラメータ:
      cbuf - 文字型配列
      off - 文字の読込み開始オフセット
      len - 書き込む文字数
      例外:
      IndexOutOfBoundsException - offが負の場合、またはlenが負の場合、またはoff + lenが負の場合、または指定された配列の長さより大きい場合
      IOException - 入出力エラーが発生した場合
    • write

      public void write(String s, int off, int len) throws IOException
      Stringの一部を書き込みます。
      オーバーライド:
      write、クラスWriter
      実装要件:
      lenが負またはoff + len負の場合、IndexOutOfBoundsExceptionがスローされることをsuperclassのこのメソッドの仕様は推奨しますが、このクラスの実装はこのような例外をスローせず、単に文字を書きません。
      パラメータ:
      s - 書き込まれる文字列
      off - 文字の読込み開始オフセット
      len - 書き込む文字数
      例外:
      IndexOutOfBoundsException - offが負の場合、またはoff + lenが指定された文字列の長さより大きい場合
      IOException - 入出力エラーが発生した場合
    • newLine

      public void newLine() throws IOException
      改行文字を書き込みます。 行セパレータ文字列は、システム・プロパティline.separatorで定義され、必ずしも1つの改行('\n')文字ではありません。
      例外:
      IOException - 入出力エラーが発生した場合
    • flush

      public void flush() throws IOException
      ストリームをフラッシュします。
      定義:
      flush、インタフェースFlushable
      定義:
      flush、クラスWriter
      例外:
      IOException - 入出力エラーが発生した場合
    • close

      public void close() throws IOException
      次のクラスからコピーされた説明: Writer
      ストリームを最初にフラッシュして、閉じます。 ストリームが閉じられたあとにwrite()またはflush()を呼び出すと、IOExceptionがスローされます。 すでに閉じられているストリームを閉じても、何の影響もありません。
      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースCloseable
      定義:
      close、クラスWriter
      例外:
      IOException - 入出力エラーが発生した場合