目次へ

解答例 - 実習課題4 - 3.その他の入出力クラス

(実習課題4)

実習課題3のプログラムを改良しなさい。

  • 結果の出力先を、コンソール・指定したファイルに切り替えられるようにしなさい。
  • 出力先の指定はプログラム実行時の引数で指定する事。

解答例

/**
 * StandardInputExample.java
 * TECHSCORE Java 入出力3章 実習課題4 
 *
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */

package com.techscore.io.chapter3.exercise4;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Collections;

public class StandardInputExample {
    public static void main(String[] args) {
        try {
            System.out.println("並び替える数字を入力してください");
            System.out.println("終わるときは単にエンターを押してください");
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String line;
            ArrayList list = new ArrayList();
            while (true) {
                line = reader.readLine();
                if ("".equals(line)) {
                    break;
                }
                //読み込んだ値をリストに追加
                list.add(Integer.valueOf(line));
            }

            //リストをソートする
            Collections.sort(list);

            PrintStream out;
            if (args.length > 0) {
                //引数に出力ファイル名が指定されたときは、そのファイルに出力
                out = new PrintStream(new FileOutputStream(args[0]));
            } else {
                //引数がないときは、標準出力
                out = System.out;
            }

            out.println("ソート後");
            for (int i = 0; i < list.size(); i++) {
                out.println((Integer)list.get(i));
            }
            System.out.println("出力完了しました");
        } catch (IOException e) {
            e.printStackTrace();
        } catch (NumberFormatException e) {
            System.out.println("半角数字で入力してください");
            e.printStackTrace();
            System.exit(0);
        }
    }
}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp