goo blog サービス終了のお知らせ 

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

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

Javaの入出力:コンソールの入出力とそれをファイルに書き出す方法

2006-09-13 17:01:08 | JavaとWeb

 以前のブログで、(ここ)コンソールの入出力についてふれたので、それについて。

 あとそれと、コンソール出力をファイルに出す方法についても。




 コンソールの入出力は、普通、System.in,System.out,System.errで行います。
 これは、
  System.inが標準入力で、クラスはInputStream
  System.outが標準出力で、クラスはPrintStream
  System.errが標準エラー出力で、クラスはPrintStream

 したがって、System.in.read()で、int型で、1文字ずつ取ってこれるし、
 read(byte[] b) のバイト配列でとってくる方法もOKです。

 System.out、System.errとも、PrintStreamなので、printメソッド、printlnメソッドは使えます。

 で、ここまではOKです。
 じゃ、標準出力を、ファイルに出したいときは??




System.setOut(PrintStream ps);みたいなかんじでやります。
 setIn,SetErrもあります。

 こんなかんじになります。

  FileOutputStream fo33 = new FileOutputStream("out33.txt");
  PrintStream ps33 = new PrintStream(fo33);
  PrintStream oldps = System.out;
  System.setOut(ps33);

 oldpsとして、System.outを保存している理由は、あとで、標準出力をもどすからです。
 こうすると、System.out.println("あいうえお");のように書き出すと、ファイルに出力されます。




■サンプルソースコード

●仕様
1.はじめに入力されたものを出力します
  (改行が入力されるまで出力します)
2.エラー二出力します
3.標準入力の内容をout33.txtファイルに出力します
4.標準入力をもとにもどして、"ファイルに書き出したよ"と出力します。

●ソース
こんなかんじです。

import java.io.*;

public class test {
	public static void main(String[] args) 
	{
		//	書き出しデータ
	String data =
 "地学	平野麻樹子¥n日本史	小笠原亜里沙¥n美術	村井美樹";
		int	i;
		
		try
		{
			//	入力したものをそのままだす
			while((i = System.in.read()) != '¥n')
			{
				System.out.print((char)i);
			}
			
			//	エラーに出力してみる
			System.err.print(data);
			
			//--------------------
			//PrintWriterを使うケース
			//--------------------
			FileOutputStream	fo33	= new FileOutputStream("out33.txt");
			PrintStream 		ps33	= new PrintStream(fo33);
			PrintStream 		oldps	= System.out;
			System.setOut(ps33);
			
			//	ファイル書き出し
			System.out.println("出力変換");
			System.out.print(data);

			//	元に戻す
			System.setOut(oldps);
			System.out.println("ファイルに書き出したよ");

			//	クローズ
			ps33.close();
			fo33.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}	
	}

}

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

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« UMLや自動生成、形式仕様... | トップ | 「圧縮フォルダを使わないよ... »
最新の画像もっと見る

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