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

题目

Test.txt如下:

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

代码

import java.util.Scanner;

import java.io.*;

public class Main {

    public static void main(String[] args) {
        new MyTest().function();
    }

    private void function() {

        System.out.println("测试开始:");

        Scanner reader = new Scanner(System.in);
        String data;
        String regex = "[-]{5,}";
        String input;
        FileReader rootin = null;
        BufferedReader in = null;
        int scord = 0;

        File test = new File("d:\\java\\test.txt");

        if (test.exists() == true)
            System.out.println("文件打开成功\n");
        else
            System.out.println("文件打开失败\n");

        try {
            rootin = new FileReader(test);
            in = new BufferedReader(rootin);

            while ((data = in.readLine()) != null) {
                System.out.println(data);
                if (data.matches(regex) == true) {
                    data = in.readLine();
                    input = reader.next();
                    if (data.charAt(0) == input.charAt(0))
                        scord++;
                }
            }
        } catch (IOException e) {
            e.getMessage();
            throw new RuntimeException("\n程序运行出现错误,请重试");
        } finally {
            try {
                in.close();
            } catch (IOException e) {
                e.getMessage();
                throw new RuntimeException("\n输入流关闭失败,请重试");
            }
        }

        System.out.println("测试结束,得分为:" + scord);

    }

}
0

Leave a Reply

Your email address will not be published.