gpt4 book ai didi

java - Else 语句在处理完所有文本文件之前执行

转载 作者:行者123 更新时间:2023-12-04 10:03:09 25 4
gpt4 key购买 nike

我是一个新程序员。

我正在编写一个登录系统,可以通过文件处理来验证用户名和密码。

我有这个问题,我的登录系统可以验证我的凭据.txt 中的第一对凭据,但它没有机会验证第二对,因为“else”语句执行,如果前两个凭据是不是比赛。

所有帮助将不胜感激。

public void verifyLogin(String username, String password) throws FileNotFoundException {

try {
File readCredentials = new File("credentials.txt");

Scanner readFile = new Scanner(readCredentials);

boolean matchFound = false;

while (readFile.hasNextLine() && matchFound == false) {

uIUsername = readFile.nextLine();
uIPassword = readFile.nextLine();

if (uIUsername.equals(username) && uIPassword.equals(password)) {

System.out.println("You are logged in");

readFile.close();

matchFound = true;
}
else {
System.out.println("Error");

readFile.close();

matchFound = true;
}
}
}
catch (Exception e) {
System.out.println("Exception");
}
}

最佳答案

循环完成后,您需要打印错误消息。请按以下步骤操作:

public void verifyLogin(String username, String password) {
Scanner readFile;
try {
File readCredentials = new File("credentials.txt");
readFile = new Scanner(readCredentials);
boolean matchFound = false;
while (readFile.hasNextLine() && matchFound == false) {
uIUsername = readFile.nextLine();
uIPassword = readFile.nextLine();
if (uIUsername.equals(username) && uIPassword.equals(password)) {
System.out.println("You are logged in");
matchFound = true;
}
}
if (!matchFound) {
System.out.println("Error");
}
} catch (Exception e) {
e.printStackTrace();
}
readFile.close();
}

请注意,我还放置了 readFile.close()只有一次而不是在两次重复, ifelse部分。

另外,请注意我使用了 e.printStackTrace()这将确保在出现任何异常时打印完整的堆栈跟踪。

关于java - Else 语句在处理完所有文本文件之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61732143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com