现有如下格式的成绩单score.txt:姓名:张三,数学成绩88,英语成绩92。姓名:李四,数学成绩67,英语成绩96。姓名:王二,数学成绩92,英语成绩85。程序在读取文件时,要求用户输入的密码是use123。密码正确程序读取score.txt并输出。一旦超过两次读入的密码不正确,程序立刻结束。(用InputStreamReader和BufferedReader流、FileReader流)
时间: 2024-02-25 19:59:34 浏览: 65
参看文本文件"学生成绩.txt", 编写一个类, 读取文件
3星 · 编辑精心推荐
好的,我来解答你的问题。
以下是Java代码实现:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
public class ScoreReader {
public static void main(String[] args) {
String password = "";
int tryTimes = 0;
while (tryTimes < 3) {
System.out.println("请输入密码:");
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
password = reader.readLine();
} catch (Exception e) {
e.printStackTrace();
}
if (password.equals("use123")) {
try {
FileReader fileReader = new FileReader("score.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
fileReader.close();
} catch (Exception e) {
e.printStackTrace();
}
break;
} else {
System.out.println("密码错误,请重新输入!");
tryTimes++;
}
}
if (tryTimes >= 3) {
System.out.println("密码错误次数超过3次,程序结束!");
}
}
}
```
在这个程序中,我们使用了两种不同的输入流:InputStreamReader和BufferedReader流,以及FileReader流来读取文件。
首先,我们使用while循环来实现密码输入的功能,并且限制了最多输入密码错误的次数为3次。如果输入正确的密码,程序会读取文件score.txt并输出,否则会提示用户重新输入密码,并且尝试次数加1。如果尝试次数超过3次,程序将会结束。
在读取文件时,我们使用了FileReader和BufferedReader流来读取文件中的每一行,并输出到控制台上。
希望本篇解答对你有所帮助!
阅读全文