標準入力→標準出力(行単位)

C:\TMP>java StdIO
入力してください:
> 12345
> abcdefg
> ABCDEFG
> ^Z
12345
abcdefg
ABCDEFG
 -- Press any key to exit (Input "c" to continue) --

標準入力(キーボード)から1行単位で読み込み,標準出力(コンソール画面)に書き出し(印字)します。
try, catch の使い方も説明します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして StdIO.java の名前で保存して下さい。
    //★ 標準入力から1行単位で読み込み,標準出力に書き出す  前田 稔
    //   Ctrl + Z で終了
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class StdIO
    {   public static void main(String[] args)
        {   try
            {   String line;
                BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
                PrintWriter print = new PrintWriter(System.out);
                System.out.println("入力してください:");
                System.out.print("> ");
                while((line=input.readLine()) != null)
                {   print.println(line);
                    System.out.print("> ");
                }
                print.close();
            }
            catch(IOException e)
            {   e.printStackTrace();
                System.exit(1);
            }
        }
    }
    
  2. java のソースファイルをコンパイルして class オブジェクトを実行して下さい。
    "> " が表示されたら、一行ずつ入力して下さい。
    入力の終了は Ctrl キーを押しながら Z キーをタイプします。
    入力が終了すると、今までタイプされた文字列が標準出力(DOS 画面)に表示されます。

プログラムの説明

  1. java.io.XXX をインポートして下さい。
    import java.io.* でまとめてインポートすることも出来ますが、今回は個別に指定してみました。
        //import java.io.*;
        import java.io.BufferedReader;
        import java.io.IOException;
        import java.io.InputStreamReader;
        public class StdIO
        {
        
  2. try と catch でコンソール入力が成功したときと失敗したときの処理を記述します。
    try がコンソール入力が成功したときの処理です。
    catch がコンソール入力が失敗したときの処理です。
    メソッドの頭で throws(スロウズ) を宣言して、呼び出し側にエラー処理を任すことも出来ます。
    throws を宣言したときは、呼び出し側のどこかで try, catch で処理しなければなりません。
    BufferedReader がコンソール入力のオブジェクトです。
    PrintWriter がコンソール出力のオブジェクトです。
    while((line=buf.readLine()) != null) でコンソール入力を繰り返します。
    print.println(line) で入力された文字列を標準出力に転送します。
    Ctrl + Z がタイプされたらループが終了します。
    print.close() で、入力された文字列が DOS 画面に表示されます。
        try
        {   String line;
            BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
            PrintWriter print = new PrintWriter(System.out);
            System.out.println("入力してください:");
            System.out.print("> ");
            while((line=input.readLine()) != null)
            {   print.println(line);
                System.out.print("> ");
            }
            print.close();
        }
        
  3. catch でコンソール入力が失敗したときの処理を記述します。
        catch(IOException e)
        {   e.printStackTrace();
            System.exit(1);
        }
        
  4. コンソールから数値データを入力する例は コンソールから数値を入力する などを参照して下さい。

【NOTE】

try と catch で処理が成功したときと失敗したときの処理を記述します。
throws(スロウズ)を宣言すると便利なようですが、処理を先延ばしするだけで解決にはなりません。
throws を宣言したメソッドを呼び出す度に、引き継がなくてなならず、呼び出し側のどこかで try, catch で処理しなければなりません。
もっとも main() メソッドで throws すると Java が適当に処理してくれます。 (^_^;)
throws は処理に失敗した時点ではエラー処理が出来ず、親のメソッドにエラー処理を引き継ぐときにだけ使うべきです。
throws を使ったサンプルプログラムは throws のサンプル を参照して下さい。

超初心者のプログラム入門(Java2)