我无法使用Java BufferedReader读取文本文件

我无法使用Java BufferedReader读取文本文件,java,Java,我收到了一个文本文件,如下所示: Test: t1 mark1: 0 mark2: 10 mark3: 12 end Test:t2 mark1: 0 mark2: 1 mark3: 2 end Test:t3 mark1: 2 mark2: 3 mark3: 12 end 我应该用Java读取这个文件并对它进行一些计算,这个文件有20条这样的记录。我是Java新手,我尝试使用BufferedReader阅读它。以下是我的节目: // Java Program to illustrate

我收到了一个文本文件,如下所示:

Test: t1
mark1: 0
mark2: 10
mark3: 12
end

Test:t2
mark1: 0
mark2: 1
mark3: 2
end

Test:t3
mark1: 2
mark2: 3
mark3: 12
end
我应该用Java读取这个文件并对它进行一些计算,这个文件有20条这样的记录。我是Java新手,我尝试使用BufferedReader阅读它。以下是我的节目:

// Java Program to illustrate reading from FileReader 
// using BufferedReader 
public class A1 {
    static int i = 1;

    public static void main(String[] args) throws Exception {
        // double backquote is to avoid compiler interpret words
        File file = new File("C:\\Users\\Documents\\Assig\\datafile.txt");
        BufferedReader br = new BufferedReader(new FileReader(file));
        String tot;
        String test[] = new String[20];
        String mark[] = new String[20];
        int avg[] = new int[20];
        int exsize = 0;
        System.out.print('\u000C');
        while ((tot = br.readLine()) != null) {
            if (tot.contains("Test")) {
                test[i] = tot.substring(4);
            }
            if (tot.contains("ExecSize")) {
                exsize = (Integer.valueOf(mark[i] = tot.substring(10)));
                avg[i] = (exsize - 1) + avg[i - 1];
            }
            System.out.println(test[i] + "  " + avg[i]);
            // i++;
        }
    }
}

我的程序在循环中不知道为什么,每行运行

。您有什么问题?您的程序运行正常,退出正常。它没有无限循环或任何异常。你能问一个具体的问题你在寻找什么吗?它在循环中,第一个值被读取和打印4次,第二个值被读取和打印5次,我不知道为什么会发生这种情况,我只希望每个测试只被读取和打印一次。如果不满足条件,你不想打印任何东西吗?将
System.out.println()
移动到if块内,它只会在代码进入该块时打印。但现在所有内容都进入数组的第0个位置。为了计算的目的,我需要能够合计所有测试的mark1等。因此,我需要在数组中读取它。请。建议如何执行此操作,以便标记[0]应具有test1的标记1,标记[1]应具有test2的标记1,依此类推