電子書籍の厳選無料作品が豊富!

はじめまして。

下記のプログラムで、以下の3つがどのような関係なのかがわかりません。


("test1.txt")とnew FileWriterの関係


(new FileWriter("test1.txt")とnew BufferedWriterの関係


(new BufferedWriter(new FileWriter("test1.txt")と new PrintWriterの関係


どうかご教示いただきたく、よろしくお願い致します。


import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Sample7 {
public static void main(String[] args){
PrintWriter pw = null;
try{
pw = new PrintWriter
(new BufferedWriter(new FileWriter("test1.txt")));

pw.println("Hello!");
pw.println("GoodBye");
System.out.println("ファイルに書き込みました。");
}catch(IOException e){
System.out.println("入出力エラーです。");
}finally{
if(pw != null){
pw.close();
}
}
}

}

A 回答 (2件)

Java の理念として、ファイル処理は汎用ストリーム処理の一環として実装されていますので、


他に比べて妙に回りくどい書き方になりがちです。最近はマシになった様ですが。

■ "test1.txt" と new FileWriter の関係
ファイル test1.txt へ出力する、テキスト出力用のオブジェクトを生成

■ new FileWriter("test1.txt") と new BufferedWriter の関係
上記のオブジェクトに、バッファ処理を追加する拡張(Decorator パターン)
コストのかかる I/O 処理を効率よく行うため、出力をバッファリングさせる

■ new BufferedWriter(new FileWriter("test1.txt")) と new PrintWriter の関係
上記のオブジェクトに、書式出力処理を追加する拡張(Decorator パターン)
数値の指数表記とか右寄せとか行単位出力とか

というわけで、

■ new PrintWriter(new BufferedWriter(new FileWriter("test1.txt")));
書式出力処理とバッファ処理の拡張が付いた、ファイル test1.txt へテキスト出力するオブジェクト
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございました。

お礼日時:2013/06/23 13:51
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございました。

お礼日時:2013/06/23 13:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!