トップJava > コンソール入出力

コンソール入出力

コンソール出力

特に、コンソール出力は頻繁に使用するので、改めて書くほどでもないが、 形を整えるために記述しておく。

  System.out.println("hello");             // 改行を含む
  System.out.printf("%s", "hello");        // 書式

コンソール入力(Scanner)[1]

コンソール入力はコンソール出力に比べれば使用頻度は少ない。 System.out に対応するのが System.in である。

//import java.util.Scanner;

    Scanner sc = new Scanner(System.in);
    String line = sc.nextLine();

コンソール入力(InputStreamReader)[2]

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str = null;
    try {
        str = br.readLine();
        br.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

パイプ接続

コンソール入力を調べて動機は大規模なデータ処理である。 圧縮ファイルで 26GB、解凍すると 500GB 程度になるため、ファイルに落とさず、 解凍プログラムの出力先を標準出力として、それをパイプ接続で受けて処理する。

昔、言語は忘れたが、リダイレクトを使ったことがある。今は、要らないのだろうか?

時折、後戻りが必要なため、100MB程度の入力バッファをおく。

バイナリ入力の方が効率が良いかもしれない。

リファレンス

[1] Java コンソールから文字列を入力する(Scannerクラス)
[2] InputStreamReaderでキーボードから入力する方法