標準入出力としてキーボード入力と画面出力をみていきます。Javaでは、入出力関連のクラスは「java.io」パッケージにまとめられています。
標準入力(キーボード入力)する為に次のクラスを使用します。
クラス名 | 概要 |
InputStream | バイト単位での「入力ストリーム」処理を行う全てのスーパークラスです。このクラスは抽象メソッド「read()」をもつ抽象クラスになっています。 |
InputStreamReader | バイト単位の入力ストリームを指定された文字エンコードを元に文字ストリームへ変換します。 |
BufferedReader | 文字型入力ストリームに対してバッファリングして、より効率的に読み込み処理を行います。 |
※「ストリーム」とは「データの流れ」を表現する用語です。
通常、標準入力用の「InputStream」インスタンスを独自に生成することはありません。Javaの標準APIである「System」クラスのstaticメンバー変数(in)に用意されていますのでこれを使用します。
InputStream System.in
・サンプルソース(Sample1501.java)
import java.io.*; class Sample1501 { public static void main(String args[]) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("なんか入力してください。"); String s = new String(in.readLine()); System.out.println("入力値は「" + s + "」です。"); } }
・実行結果
C:\dev\java>javac Sample1501.java [Enter] C:\dev\java>java Sample1501 [Enter] なんか入力してください。 abc [Enter] 入力値は「abc」です。
標準出力(画面出力)する為に次のクラスを使用します。
クラス名 | 処理 |
PrintStream | プラットフォームのデフォルト文字セットを使用してバイトに変換し、出力ストリームへ出力するクラスです。よく使用される「System.out.println()」のprintlnメソッドはこのクラスが提供しています。 |
通常、標準出力用の「PrintStream」インスタンスを独自に生成することはありません。Javaの標準APIである「System」クラスのstaticメンバー変数(out)に用意されていますのでこれを使用します。
PrintStream System.out
・サンプルソース(Sample1502.java)
public class Sample1502 { public static void main(String[] args) { System.out.println("「println」メソッドは出力後改行します。"); System.out.print("「print」メソッドは出力後改行しません。"); System.out.print("System.getProperty(\"line.separator\")で改行!" + System.getProperty("line.separator")); String str = "バージョン1.5"; System.out.printf("%sからフォーマット指定ができるC言語ライクな「printf」メソッドが追加されました。\n",str); System.out.format("同じく%sからフォーマット指定可能な「format」メソッドが追加されました。",str); } }
・実行結果
C:\dev\java>javac Sample1502.java [Enter] C:\dev\java>java Sample1502 [Enter] 「println」メソッドは出力後改行します。 「print」メソッドは出力後改行しません。System.getProperty("line.separator")で改行! バージョン1.5からフォーマット指定ができるC言語ライクな「printf」メソッドが追加されました。 同じくバージョン1.5からフォーマット指定可能な「format」メソッドが追加されました。