まえに、ファイルの出力を書いたので、今日は、ファイル以外の例として、コンソールの場合を書いてみたい
。。。が、その前に、入力のときに書いた図と同じようなものを書いて、まとめておきたいと思います。
出力は、下の図のように、OutputStreamWriter(OutputStream)を中心として、その外側をおおうものは、出力に便利な機能を付けるためのもの、内側のOutStreamは、出力メディアを切り替えるためのものとなっています。
![](https://mokano.main.jp/blogimg/java060912.jpg)
で、コンソールの話。
コンソールの場合、ふつう、
System.out.println("出力したい行");
System.out.print("出力したい言葉");
のようなかたちでかきます。
ただし、ファイルで、
FileOutputStream fo2 = new FileOutputStream(fname);
OutputStreamWriter ow2 = new OutputStreamWriter(fo2);
BufferedWriter bw2 = new BufferedWriter(ow2);
とかきましたが、このfo2を、System.outにかえて、
OutputStreamWriter ow2 = new OutputStreamWriter(System.out);
BufferedWriter bw2 = new BufferedWriter(ow2);
とやっても、可能です。
ただし、この場合、ファイルのようにクローズしてしまうと、次に書き出そうとしてもかきださなくなってしまいので、クローズしないことが必要です。
また、ファイルのときとちがい、バッファにはいったままなので、flashする必要があります。
つまり、終わりはflashして、closeするなということです。
■ソース
上記の、System.out.printlnを使わないで、OutputStreamWriterやBufferedWriter、PrintWriterを使って書き出すケースについてです。
今回も前と同じように
地学 平野麻樹子 日本史 小笠原亜里沙 世界史 吉村民 美術 村井美樹
を書き出します。
import java.io.*; public class test { public static void main(String[] args) { // 書き出しデータ String data = "地学 平野麻樹子¥n日本史 小笠原亜里沙¥n世界史 吉村民¥n美術 村井美樹"; try { int i; //==============================// // 1バイトずつ書く // //==============================// OutputStreamWriter ow2 = new OutputStreamWriter(System.out); BufferedWriter bw2 = new BufferedWriter(ow2); for(i = 0 ; i < data.length(); i ++ ) { bw2.write(data.charAt(i)); } bw2.flush(); //==============================// // 1行ずつ書き出す // //==============================// OutputStreamWriter ow3 = new OutputStreamWriter(System.out); BufferedWriter bw3 = new BufferedWriter(ow3); // 書き出し String[] line = data.split("¥n"); for(i = 0 ; i < line.length ; i ++ ) { bw3.write(line[i]+"¥r¥n"); } bw3.flush(); //-------------------- //PrintWriterを使うケース //-------------------- OutputStreamWriter ow33 = new OutputStreamWriter(System.out); PrintWriter pw33 = new PrintWriter(ow33); // 書き出し String[] line2 = data.split("¥n"); for(i = 0 ; i < line2.length ; i ++ ) { pw33.println(line2[i]); } pw33.flush(); } catch(Exception e) { e.printStackTrace(); } } } |
(上記 < > ¥ は、本当は半角です)
![](https://mokano.main.jp/card/analsysimg.cgi?imgfname=gokusho.jpg&ID=bun060910)