(3)现有如下格式的成绩单score.txt: 姓名:张三,数学成绩88,英语成绩92。 姓名:李四,数学成绩67,英语成绩96。 姓名:王二,数学成绩92,英语成绩85。程序在读取文件时,要求用户输入的密码是use123。密码正确程序读取score.txt并输出。一旦超过两次读入的密码不正确,程序立刻结束。(用InputStreamReader 和 BufferedReader流、FileReader流)java
时间: 2024-02-25 19:54:13 浏览: 95
以下是使用InputStreamReader和BufferedReader流读取score.txt文件并验证密码的代码:
```java
import java.io.BufferedReader;
import java.io.FileInputStream;
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) {
System.out.print("请输入密码:");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
password = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (password.equals("use123")) {
break;
}
tryCount++;
System.out.println("密码错误,还有" + (3 - tryCount) + "次机会!");
}
if (tryCount >= 3) {
System.out.println("密码错误次数超过3次,程序结束!");
return;
}
try (FileInputStream fis = new FileInputStream("score.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr)) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这段代码会要求用户输入密码,最多输入3次。如果输入的密码是"use123",则会读取score.txt文件并输出每行内容;如果输入的密码错误3次,则程序会立即结束。
以下是使用FileReader流读取score.txt文件并验证密码的代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ScoreReader {
public static void main(String[] args) {
String password = "";
int tryCount = 0;
while (tryCount < 3) {
System.out.print("请输入密码:");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
password = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (password.equals("use123")) {
break;
}
tryCount++;
System.out.println("密码错误,还有" + (3 - tryCount) + "次机会!");
}
if (tryCount >= 3) {
System.out.println("密码错误次数超过3次,程序结束!");
return;
}
try (FileReader fr = new FileReader("score.txt");
BufferedReader br = new BufferedReader(fr)) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这段代码与前一段代码类似,只是使用了FileReader流读取文件。注意,在使用FileReader时,要将文件的字符编码指定为与操作系统默认编码一致,否则可能会出现乱码。
阅读全文