モジュール java.base
パッケージ 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
    関連項目:
    PrintWriterFileWriterOutputStreamWriterFiles.newBufferedWriter(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption...)
    • コンストラクタの詳細

      • 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プロパティにより定義され、必ずしも単一の改行文字('\n')であるとは限りません。
        例外:
        IOException - 入出力エラーが発生した場合
      • flush

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