初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
BufferedWriterクラス
出力文字ストリームをBuffer(バッファー)に入れて処理をまとめて高速化するためのクラスがこのBufferedWriterクラスです。
文字をバッファーリングすることで文字列や配列をまとめて処理することができ、
効率よくファイルに文字を書き込むことが出来ます。これによりCPUの負荷を軽くすることが出来ます。
コンストラクタ |
説明 |
BufferedWriter(Write out) | デフォルトサイズの出力バッファでバッファリングされた、文字型出力ストリームの作成 |
BufferedWriter(Writer out int i) | 指定されたサイズの出力バッファでバッファリングされた、文字型出力ストリームを新しく作成 |
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
結果は同じになります。