% java Catと実行すると,キーボードから入力して画面上に出力するプログラムになるが (終了はCtrl-dでおこなう),
% java Cat < Cp.java > tmpと実行するとCat.javaから読み込んだファイルが tmpに出力される.
// BufferedReaderなどを使うので,java.io.*を import する. import java.io.*; class Cat { // 入出力の途中で,IOExceptionの例外が起きる可能性があるので, // throws IOException をつける. public static void main(String [] args) throws IOException{ BufferedReader is=new BufferedReader(new InputStreamReader(System.in)); String s; while((s=is.readLine())!=null){ System.out.println(s); } } }
入力用のストリームは,FileReaderから BufferedReaderを作ることにより,行単位の入出力をおこなうことができ る.出力用のストリームはFileWriterから PrintWriterを作ることにより,println等が実行できる.
これを使った Cpプログラムを見てみる.
// BufferedReaderなどを使うので,java.io.*を import する. import java.io.*; class Cp { // 入出力の途中で,IOExceptionの例外が起きる可能性があるので, // throws IOException をつける. public static void main(String [] args) throws IOException{ if(args.length!=2) usage(); BufferedReader is=new BufferedReader(new FileReader(args[0])); PrintWriter ps=new PrintWriter(new FileWriter(args[1])); String s; while((s=is.readLine())!=null){ ps.println(s); } is.close(); ps.close(); } static void usage(){ System.err.println("使い方: java Cp コピー元のファイル コピー先のファイル"); System.exit(1); } }不要になったストリームを close するのを忘れないように.
java Cp Cp.java sokoを実行すると Cp.javaの内容が sokoというファイルにコピーされる.