Java IO练习

使用输入流读取试题文件,每次显示试题文件中的一道题目。读取到字符“*”时暂停读取,等待用户从键盘输入答案。用户做完全部题目后。程序给出用户的得分。

1) 试题内容如下:
(1)北京奥运是什么时间开幕的?
A.2008-08-08 B. 2008-08-01
C.2008-10-01 D. 2008-07-08
********************
(2)下列哪个国家不属于亚洲?
A.沙特 B.印度 C.巴西 D.越南
********************
(3)下列哪个国家最爱足球?
A.刚果 B.越南 C.老挝 D.巴西
********************
(4)下列哪种动物属于猫科动物?
A.鬣狗 B.犀牛 C.大象 D.狮子
********************

程序运行如下:
(1)北京奥运是什么时间开幕的?
A.2008-08-08 B. 2008-08-01
C.2008-10-01 D. 2008-07-08
输入选择的答案(A、B、C、D):A
(2)下列哪个国家不属于亚洲?
A.沙特 B.印度 C.巴西 D.越南
输入选择的答案(A、B、C、D):

    public static void main(String[] args) {
        BufferedReader br = null;
        Scanner scan = null;
        try {
            // 1. 造流
            br = new BufferedReader(new FileReader("question.txt"));
            scan = new Scanner(System.in);
            // 2. 读写数据
            String answer = "ACDD";
            String data;
            StringBuilder result = new StringBuilder();
            int score = 0;
            while ((data = br.readLine()) != null){
                if (! data.startsWith("*")){
                    System.out.println(data);
                }else{
                    System.out.print("Please input your answer: ");
                    result.append(scan.next().charAt(0));
                }
            }
            for (int i = 0; i < result.length(); i++) {
                if(answer.toLowerCase().charAt(i) == result.toString().toLowerCase().charAt(i)){
                    score += 25;
                }
            }
            System.out.println("Final score is: " + score);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 3. 关闭流资源
            try {
                if(br == null)
                    br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            scan.close();
        }


    }
posted @ 2020-09-03 08:07  wsilj  阅读(202)  评论(0编辑  收藏  举报