现有如下格式的成绩单score.txt: 姓名:张三,数学成绩88,英语成绩92。 姓名:李四,数学成绩67,英语成绩96。 姓名:王二,数学成绩92,英语成绩85。程序在读取文件时,要求用户输入的密码是use123。密码正确程序读取score.txt并输出。一旦超过两次读入的密码不正确,程序立刻结束。(用InputStreamReader 和BufferedReader流、FileReader流)用JAVA编写
时间: 2024-02-25 15:59:50 浏览: 63
好的,你可以参考下面的代码实现:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ScoreReader {
public static void main(String[] args) {
String password = "";
int tryCount = 0;
while (tryCount < 3) {
password = readPassword();
if (password.equals("use123")) {
break;
} else {
tryCount++;
System.out.println("Password incorrect. Please try again.");
}
}
if (tryCount >= 3) {
System.out.println("Password incorrect for 3 times. Program terminated.");
return;
}
try (BufferedReader reader = new BufferedReader(new FileReader("score.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("姓名")) {
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static String readPassword() {
System.out.print("Please enter password: ");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String password = "";
try {
password = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return password;
}
}
```
这个程序首先要求用户输入密码,最多允许输入三次,如果密码正确,则继续执行程序;否则,超过三次后程序立即结束。程序使用 BufferedReader 和 FileReader 分别打开 score.txt 文件,然后逐行读取文件内容,如果读到一行以“姓名”开头的内容,则将这一行输出到控制台上。
阅读全文