25‐1
入力出力
バイナリデータAB
テキストデータCD
上記は入出力を行う際に使用するストリームの分類の表です。AからDのストリームの種類を答えなさい。

25‐2
入力の効率をよくするため、通常はデータをバッファリング(ためること)するストリームを使用します。
(1) 上記25‐1のCの上位にくるバッファリングするストリームは何ですか?
(2) (1)のストリームで使用することのできる、1行分読み込むためのメソッドは何ですか?
(3) 上記25‐1のDの上位にくるバッファリングするストリームは何ですか?

25‐3
2つのコマンドライン引数(整数)の合計を出力するようなクラスExer25_03を次の用件を満たすように作成しなさい。
・コマンドライン引数の個数が2つ以外の場合は、標準エラー出力に"2個の引数を指定してください"と出力する。
・個数は2つだが、整数に変換できないコマンドライン引数が指定されていた場合は、標準エラー出力に"整数を指定してください"と出力する。
・コマンドライン引数が正しい場合はその合計を標準出力に出力する。
上記クラスを作成後、結果が標準出力か標準エラー出力のどちらに出力されているか、Linuxのリダイレクションを利用して(すなわち > や 2> を利用して出力先をファイルに切り替えて)確認しなさい。
ヒント:数字に変換できない場合、Integer.parseInt()でNumberFormatExceptionという例外が発生します。

25‐4
入力した単語を入力した順番とは逆の順番で出力する次のようなクラスExer25_04を作成・コンパイル・実行しなさい。
(1) ユーザーに機能を選択させるため、次のように出力する。
機能番号を選択してください。 1.終了 2.単語入力=>
(2) (1)で2が選択された場合、続けて次のように出力し、ユーザーに単語を入力させる。その後(1)に戻る。
単語を入力してください=>
(3) (1)で1が選択された場合、これまでユーザーが入力してきた単語を入力した順番とは逆の順番で出力し、終了する。
ヒント:あるコレクションを使用する。

25‐5
Exer25_04を辞書順で出力するように変更したクラスExer25_05を作成・コンパイル・実行しなさい。
ヒント:使用するコレクションを変更する。

25‐6
次のようなクラスExer25_06を、Exer25_04を参考にして作成・コンパイルしなさい。
・入力ファイルと出力ファイルをコマンドライン引数で指定させる。
・入力ファイルはテキストデータ(文字列データ)とする。
・入力ファイルの行の順番を逆順にして出力ファイルに出力する。
入力用のテキストデータファイルを適当に作成しなさい。実行時はそのファイルと適当な出力ファイルを指定しなさい。

25‐7
Exer25_06を辞書順で出力するように変更したクラスExer25_07を作成・コンパイル・実行しなさい。