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()を使っているので改行処理されています。

ページのトップへ戻る