【发布时间】:2020-02-26 03:35:17
【问题描述】:
我需要一些帮助,因为我是 Java 新手,所以我已经坚持了一段时间。我在控制台中创建了一个登录面板,其中设置了默认的用户名和密码来登录。他们可以创建一个帐户,将用户名存储在 username.txt 文件中,将密码存储在 passwords.txt 文件中。我想知道如何获取它,以便函数逐行读取用户名和密码的 txt 文件,直到它将用户名与用户名文件中的现有用户名匹配并且与密码相同,以便登录。
这是从文件中读取函数:
public static void readFromFile() throws Exception {
BufferedReader saveUsrFile, savePwFile;
try {
saveUsrFile = new BufferedReader(new FileReader("username.txt"));
String line_u = saveUsrFile.readLine();
while (line_u != null && saveUsrFile.readLine().equals(LP.username)) {
cusUsr = saveUsrFile.readLine();
}
saveUsrFile.close();
savePwFile = new BufferedReader(new FileReader("passwords.txt"));
String line_p = savePwFile.readLine();
while (line_p != null && savePwFile.readLine().equals(LP.password)) {
cusPass = savePwFile.readLine();
}
savePwFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
这是登录面板:
import java.util.Scanner;
public class LoginPanel {
static String username;
static String password;
public LoginPanel() {}
public static void main(String[] args) {
boolean flag = true;
Passenger p = new Passenger();
Scanner input = new Scanner(System.in);
while(flag == true) {
System.out.println("Enter Username: ");
username = input.nextLine();
System.out.println("Enter Password: ");
password = input.nextLine();
if ((password.equals(p.DefPass) && username.equals(p.DefUser)) || (password.equals(p.cusPass) && username.equals(p.cusUsr))) {
System.out.println("Passenger login successful!");
p.display();
} else {
System.out.println("Please check your username or password and try again!");
}
}
}
}
请有人帮助我并告诉我如何让它逐行读取文件,直到它匹配并允许用户登录。
【问题讨论】:
-
您检查之前的读数是否为非 null,然后在 while 循环的头部再次读取。似乎不是你想要的。在循环之前读取,然后检查循环头中的非 null 并在循环中再次读取,因为最后一条语句可能是您要查找的内容