现有如下格式的成绩单score.txt: 姓名:张三,数学成绩88,英语成绩92。 姓名:李四,数学成绩67,英语成绩96。 姓名:王二,数学成绩92,英语成绩85。 程序在读取文件时,要求用户输入的密码是use123。密码正确程序读取score.txt并输出。一旦超过两次读入的密码不正确,程序立刻结束。(用InputStreamReader和BufferedReader流、FileReader流) 用java写
时间: 2024-02-13 22:04:55 浏览: 41
JAVA实验报告 举重成绩单
好的,这是一个需要涉及文件读取和密码验证的问题,下面是代码实现:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ScoreReader {
public static void main(String[] args) {
int loginAttempt = 0;
while (loginAttempt < 3) {
System.out.println("请输入密码:");
String password = readPassword();
if (!password.equals("use123")) {
loginAttempt++;
System.out.println("密码不正确,请重新输入!还有" + (3 - loginAttempt) + "次机会");
} else {
System.out.println("密码正确,正在读取文件...");
File file = new File("score.txt");
if (file.exists()) {
try {
FileReader fileReader = new FileReader(file);
BufferedReader br = new BufferedReader(fileReader);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
break;
} else {
System.out.println("文件不存在!");
break;
}
}
}
if (loginAttempt == 3) {
System.out.println("输入密码错误次数超过限制,程序结束!");
}
}
private static String readPassword() {
String password = "";
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
password = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return password;
}
}
```
程序运行时会循环要求用户输入密码,最多只能输入三次,如果密码正确,就会读取文件并输出文件内容,如果密码不正确,就会提示剩余机会。如果三次输入密码错误,程序会立刻结束。
阅读全文