试卷文件:
TEST-01
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.狮子
package 标准化考试;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int score=0;
StringBuffer answer=new StringBuffer();
String result="ABCD";
BufferedReader inTwo=null;/*最终关闭流的时候,finally里面需要执行inTwo.close();所以需要定义一个全局变量*/
try{
FileReader inOne=new FileReader("E:\\test.txt");
inTwo=new BufferedReader(inOne);
String n=null;
while((n=inTwo.readLine())!=null){
if(!n.startsWith("*")){/*这里是在试卷文本里有一行星号来作为暂停答题*/
System.out.println(n);
}
else
{
System.out.println("输入要选择的答案:");
String str=s.nextLine();
try{
char c=str.charAt(0);
answer.append(c);
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}/*catch要处理相应的问题,这里有打开文件错误,IO流异常*/
finally{
if(inTwo!=null){
try {
inTwo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
for(int i=0;i<result.length();i++){
if(result.charAt(i)==answer.charAt(i)){
score++;
}
}
System.out.printf("最后的得分:%d\n",score);
}
}
总结
1、首先创建FileReader对象
2、将FileReader传递给BufferedReader
3、采用BufferedReader的readLine()方法和read()方法来读取文件内容
4、最后一定要的finally语句中关闭BufferedReader