ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Javaの入出力:ファイル以外の出力-コンソールを例に。。。

2006-09-12 15:48:19 | JavaとWeb

 まえに、ファイルの出力を書いたので、今日は、ファイル以外の例として、コンソールの場合を書いてみたい

 。。。が、その前に、入力のときに書いた図と同じようなものを書いて、まとめておきたいと思います。

 出力は、下の図のように、OutputStreamWriter(OutputStream)を中心として、その外側をおおうものは、出力に便利な機能を付けるためのもの、内側のOutStreamは、出力メディアを切り替えるためのものとなっています。






で、コンソールの話。
コンソールの場合、ふつう、
    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();
		}	
	}

}

(上記 < > ¥ は、本当は半角です)


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 経理システム開発のための財... | トップ | KDDI研究所のXEUSは、XML... »
最新の画像もっと見る

JavaとWeb」カテゴリの最新記事