现有如下格式的成绩单score.txt: 姓名:张三,数学成绩88,英语成绩92。 姓名:李四,数学成绩67,英语成绩96。 姓名:王二,数学成绩92,英语成绩85。 程序在读取文件时,要求用户输入的密码是use123。密码正确程序读取score.txt并输出。一旦超过两次读入的密码不正确,程序立刻结束。(用InputStreamReader和BufferedReader流、FileReader流) 用java写
时间: 2024-02-13 18:03:01 浏览: 24
好的,下面是用Java实现的代码:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReadScoreFile {
public static void main(String[] args) {
int count = 0;
String password = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (count < 3) {
System.out.print("请输入密码:");
try {
password = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (password.equals("use123")) {
break;
} else {
count++;
System.out.println("密码错误!您还有" + (3 - count) + "次机会!");
}
}
if (count == 3) {
System.out.println("密码错误次数过多,程序已退出!");
System.exit(0);
}
File file = new File("score.txt");
if (!file.exists()) {
System.out.println("文件不存在!");
return;
}
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
代码说明:
1. 首先定义了一个计数器 `count`,用于记录密码输入错误次数;
2. 然后使用 `BufferedReader` 读取用户输入的密码,最多允许输入三次,如果密码正确则跳出循环,否则计数器加一,提示剩余次数;
3. 如果输入密码错误次数超过三次,则直接退出程序;
4. 如果密码输入正确,则使用 `FileReader` 读取 `score.txt` 文件,并输出到控制台上。