BufferedWriterクラス

出力文字ストリームをBuffer(バッファー)に入れて処理をまとめて高速化するためのクラスがこのBufferedWriterクラスです。

文字をバッファーリングすることで文字列や配列をまとめて処理することができ、
効率よくファイルに文字を書き込むことが出来ます。これによりCPUの負荷を軽くすることが出来ます。

BufferedWriterクラスのコンストラクタを見てみます。

コンストラクタ
説明
BufferedWriter(Write out) デフォルトサイズの出力バッファでバッファリングされた、文字型出力ストリームの作成
BufferedWriter(Writer out int i) 指定されたサイズの出力バッファでバッファリングされた、文字型出力ストリームを新しく作成
BufferedWriterクラスはWriterクラスのサブクラスになりWriterクラスのメソッドもそのまま引き継かれます。
BufferedWriterを利用する際はWriterクラスやWriterクラスの
サブクラスなどのインスタンスを引数に指定して作成します。

ではサンプルプログラムを見ていきます。

サンプルプログラム(BufferedWriterSample.java)

//import宣言

import java.io.*;
class BufferedWriterSample{
    public static void main(String args[]){

     try{

      //BufferedWriterオブジェクトの生成
        FileWriter fw = new FileWriter(args[0]);
       BufferedWriter bw = new BufferedWriter(fw);

       //ファイルに書き込み
      String str = "はじめてのJava入門";

      for(int i = 0; i < 50;i++){
        bw.write(str + "\n");
        //改行を出力
        bw.newLine();
  }
  System.out.println("書き込み完了");

  //BufferedWriterオブジェクトを閉じます
  bw.close();

 }catch(IOException e){

    System.out.println("Exception : " + e);
        }
    }

}
プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。
今回実行の際はtest2.txtに書き込みます。
では、また今作成したファイルを確認したいと思います。
もうファイルの場所は知っていますよね。BufferedWriterSample.javaと同じ場所にあります。

test2.txtファイルを開いてみましょう。


このようにはじめてのJava入門をファイルに50回出力しています。
このBufferedWriterクラスはファイルに表示するデータが多ければ多いほどバッファの役割が大きくなります。

では、プログラムの解説を行います。

やはりこのBufferedWriterクラスもjava.ioパッケージに属しているのでimport宣言が必要です。
コマンドラインから指定されたFileWriterクラスのオブジェクトを引数にしてBufferedWriterオブジェクトを生成しています。
つまりここでは指定したファイルにバッファーを持った文字ストリームから書き出しを行っています。

次にfor文の中でwrite()メソッドを利用して50回書き出しを行っています。
この次のnewLine()メソッドは改行を出力します。
つまり書き出したときに改行処理を行ってくれます。 close()メソッドでBufferedWriterオブジェクトを閉じています。

やはり例外が発生する可能性があるので例外処理をしなければいけません。

ちなみに上のプログラムをこのように書き換えることもできます。

サンプルプログラム(BufferedWriterSample1.java)

//import宣言
import java.io.*;
class BufferedWriterSample1{
    public static void main(String args[]){
     try{

      //BufferedWriter1オブジェクトの生成
       BufferedWriter bw = new BufferedWriter(new FileWriter(args[0]));

       //ファイルに書き込み
      String str = "はじめてのJava入門";

      for(int i = 0; i < 50;i++){
        bw.write(str + "\n");
        //改行を出力
        bw.newLine();

  }
  System.out.println("書き込み完了");

  //BufferedWriterオブジェクトを閉じます
  bw.close();

 }catch(IOException e){

    System.out.println("Exception : " + e);
       

          }

      }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

結果は同じになります。

ページのトップへ戻る