初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
PrintWriterクラス
PrintWriterクラスはprint()メソッドとprintln()メソッドを実装しているクラスです。
これらのメソッドはint型,float型,double型などを自動的にString型に変換を行い出力してくれます。
コンストラクタには以下のようなものがあります。
コンストラクタ |
説明 |
PrintWriter(OutputStream out) | 既存のOutputStreamから新しいPrintWriterを作成します。このコンストラクタでは、必要な中間のOutputStreamWriterを作成します。 |
PrintWriter(Writer out) | Writerクラスオブジェクトを引数に出力ストリームを作成します。 |
PrintWriter(OutputStream out,boolean b) | 引数にbooleanの値(true)を与えると、改行文字[\n]ごとに出力ストリームを全て出力します。 |
PrintWriter(Writerout, boolean b) |
引数にbooleanの値(true)を与えると、改行文字[\n]ごとに出力ストリームを全て出力します。 |
主なメソッド
戻り値 |
メソッド |
概要 |
void | print(boolean b) | 引数 b を出力します。 |
void | print(char c) | 引数 c を出力します。 |
void | print(double d) | 引数 d を出力します。 |
void | print(float f) | 引数 f を出力します。 |
void | print(int i) | 引数 i を出力します。 |
void | print(long l) | 引数 l を出力します。 |
void | print(Object o) | 引数 o を出力します。 |
void | print(String str) | 引数 str を出力します。 |
void | println() | 改行文字を出力し、行を終了します。 |
void | println(boolean b) | 引数 b を出力し,行を終了します。 |
void | println(char c) | 引数 c を出力し,行を終了します。 |
void | println(int i) | 引数 i を出力し,行を終了します。 |
void | println(float f) | 引数 f を出力し,行を終了します。 |
void | println(Object o) | 引数 o を出力し,行を終了します。 |
void | println(String str) | 引数 str を出力し,行を終了します。 |
void | write(int i) | 引数 i を出力します。 |
void | write(String str) | 引数 str を出力します。 |
boolean | checkError() | ストリームが閉じていなければフラッシュし、そのエラーの状態をチェックします。 |
void | close() | ストリームを閉じます。 |
void | flush() | ストリームをフラッシュします。 |
サンプルプログラム(PrintWriter.java)
//import宣言 import java.io.*; class PrintWriterSample{ public static void main(String args[]){ try{
//FileWriterオブジェクトの生成 FileWriter fw = new FileWriter(args[0]); //BufferedWriterオブジェクトの生成 BufferedWriter bw = new BufferedWriter(fw); //PrintWriterオブジェクトの生成 PrintWriter pw = new PrintWriter(bw); //ファイルに書き出し
int i;
for(i = 0; i < 10; i++){ pw.print(i); } System.out.println("書き込み終了"); //PrintWriterオブジェクトを閉じます pw.close(); }catch(IOException e){ System.out.println("IOException : " + e); }
} }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
今回実行の際はtest3.txtに書き込みます。
作成されたtest3.txtを開いてみると以下のようになります。
プログラムを説明するとやはりPrintWriterクラスを使用するときはjava.ioパッケージをimport宣言しなければいけません。
PrintWriterオブジェクトの生成を行いますが、コンストラクタの引数にはBufferedWriterクラスオブジェクト、
次にFileWriterクラスのオブジェクトという形でストリームの連結させます。
Javaではこのように連結することが可能なのです。
ファイルに書き込みを行っているのはprint()メソッドです。
書き込みが無事に終了するとclose()でPrintWriterオブジェクトを終了しています。
書き込みの結果はfor文の中の処理が行われますので0123456789が出力されたわけです。
しかし、このサンプルプログラムも以下のように書きかえれます。
サンプルプログラム(PrintWriterSample1.java)
//import宣言 import java.io.*; class PrintWriterSample1{ public static void main(String args[]){ try{
//PrintWriterオブジェクトの生成 PrintWriter pw = new PrintWriter(new BufferedWriter (new FileWriter(args[0]))); //ファイルに書き出し
int i;
for(i = 0; i < 10; i++){ pw.println(i); } System.out.println("書き込み終了"); //PrintWriterオブジェクトを閉じます pw.close(); }catch(IOException e){ System.out.println("IOException : " + e); }
} }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
今回実行の際はtest4.txtに書き込みます。
test4.txtを開いてみてください。
書き換えた場所は2つのプログラムを見ればわかると思います。
このようにPrintWriteオブジェクトの生成をシンプル化することが出来ます。
また書き出し処理の部分ですが今度はメソッドをprintln()を使っているので改行処理されています。