Java 如何从文本文件检查用户名和密码的有效性
我想读取文本文件的内部内容,并匹配用户在登录页面中输入的帐号和pinJava 如何从文本文件检查用户名和密码的有效性,java,Java,我想读取文本文件的内部内容,并匹配用户在登录页面中输入的帐号和pin 这是我的文本文件格式 0,admin,lastAdmin,1122334455,123456. 0代表id admin代表name lastAdmin代表lastName 1122334455代表帐号 123456代表pin 这是我有错误的代码 package atm; import java.io.BufferedReader; import java.io.FileInputStream; import java
- 这是我的文本文件格式
0代表id admin代表name lastAdmin代表lastName 1122334455代表帐号 123456代表pin0,admin,lastAdmin,1122334455,123456.
- 这是我有错误的代码
package atm; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.Scanner; public class Login { public void verifyLogin(){ String accountNumber; String pin; Scanner data = new Scanner(System.in); try{ FileInputStream fis = new FileInputStream("myDataBase.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String line; while ((line = br.readLine()) !=null ){ String[] lineSpliter = line.split(","); if (accountNumber.equals(accountNumber) && pin.equals(pin)){ br.readLine(lineSpliter[6] + ',' +lineSpliter[8]); } } } catch (Exception e){ } } }
名称
标识的行,并比较pin
:
String name = "admin";
String pin = "123456";
Path path = Path.of("myDatabase.txt");
try (BufferedReader reader = Files.newBufferedReader(path)) {
String[] row = reader.lines()
.map(s -> s.split(","))
.filter(r -> r[1].equals(name))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Name not found"));
if (row[4].equals(pin)) {
System.out.println("Correct pin");
}
}
您能发布堆栈跟踪吗?请不要将PIN或任何其他密码存储为纯文本。@KarolDowbecki您能完成我的代码吗?@空白您的代码毫无意义,例如
accountNumber.equals(accountNumber)
。Self等于Self,但变量必须初始化。@KarolDowbecki是的,但我的教授想将数据保存在文本文件中。