クラスBufferedWriter

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

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

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

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

通常、Writerは、その出力を基礎となる文字またはバイト・ストリームに即時に送信します。 プロンプト出力が必要でないかぎり、FileWriterOutputStreamWriterなど、write()操作のコストがかかるWriterを囲むBufferedWriterをラップすることをお薦めします。 たとえば、

    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
PrintWriterの出力をファイルにバッファします。 バッファリングを行わないと、print()メソッドを呼び出すたびに文字がバイトに変換され、その後すぐにファイルに書き込まれます。これは非常に非効率な場合があります。

APIのノート:
BufferedWriterにラップした後は、基礎となるWriterを直接使用したり、別のライターでラップしないでください。
導入されたバージョン:
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
      実装要件:
      superclassのこのメソッドの指定では、lenが負の場合またはoff + lenが負の場合にIndexOutOfBoundsExceptionがスローされることを推奨しますが、このクラスの実装ではこのような例外はスローされず、文字は書き込まれません。
      パラメータ:
      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 - 入出力エラーが発生した場合