標準入出力について

この節の要点

  • ターミナルに文字を表示(標準出力)するためには、System.out.printlnメソッドを使う。
  • プログラムがターミナルから文字を受け取る(標準入力する)ためには、Scannerクラスを使う。

標準出力

Javaにおける標準出力(ターミナル、本演習においてはNetBeansでの出力タブ)へのテキスト出力については、これまでのサンプルコードを見てもらえれば分かる通り、System.out.printlnメソッドを使うことで出力できます(図55)。

System.out.println("Hello,World.");
図55:System.out.printlnメソッドによる標準出力への表示

このprintlnメソッドはSystemクラスが持つout変数がPrintStreamクラスの構造(オブジェクト)を参照型として持っていて、out変数が表すオブジェクトの持つprintlnメソッドを呼び出しているわけです。これは図4でも概略を示しました。このPrintStreamクラスには、printlnメソッド以外にも、テキスト出力するメソッドが用意されています。

以下によく使うPrintStreamクラスのメソッドを示します。

  • printメソッド
    • たとえば、printlnメソッドは末尾に改行が必ず挿入されますが、挿入してほしくないときもあります。このような時は、printメソッドを使います。printメソッドは指定された文字列を出力するだけです(図56)。
      System.out.print("Hello,");
      System.out.print("World."); // Hello,World.と表示される。
      
      図56:printメソッドによる標準出力への表示

標準入力

Javaにおける標準入力(キーボード入力)からテキストデータを取得する場合、いくつかの方法がありますが、もっとも簡単な方法はScannerクラスを使う方法です。 図57にScannerクラスを使った、最小の読み取りプログラムを示します。

Scannerクラスはjava.utilパッケージにあります。従って、クラスを呼び出す際にはjava.util.Scannerのように呼び出す必要があります。

java.util.Scanner scan = new java.util.Scanner(System.in); // Scannerオブジェクトを作成する。
String input = scan.nextLine(); // 改行が押されるまでのテキストデータを返却する。
System.out.println("input: " + input);
図57:Scannerクラスによる標準入力からのテキストデータの取得

図57において、Scannerオブジェクトをscan変数に作成した後、オブジェクトが持つnextLineメソッドをscan変数を介して呼び出すことで、改行が入力されるまでのテキストをStringオブジェクトとして取得します。そして、取得した結果を変数inputに代入しています。キーボードから入力する際は、出力タブの中央をクリックしてテキストカーソルを出した状態で、キーボードから文字を入力し、エンターキーを押すことでテキストデータを入力できます。

以上のprintlnメソッドと、Scannerオブジェクトを利用することで、基本的な入出力データのやりとりをすることができます。