Я написал очень простую программу, которая читает в имени пользователя и пароле из текстового файла, где имя пользователя и пароль разделяются запятой. Содержимое текстового файла содержит следующие
accounts.txt
Alex, 1234
Давид, написано 5678Помощь в простой системе аутентификации в Java
Мое приложение Java следующим
public class Authenticate {
public void signIn(String username, String password) throws IOException {
FileReader fr = new FileReader("location/accounts.txt");
BufferedReader br = new BufferedReader(fr);
while (true) {//read file line by line
String line = br.readLine();
if (line == null) {
break;
}
String splitByComma = ",";
String[] details = line.split(splitByComma);
String registeredUser = details[0];
String registeredPass= details[1];
if(username.equals(registeredUser) && password.equals(registeredPass)){
System.out.println("signed in successfully!");
}
else{
System.out.println("sign in failed");
}
}
br.close();
}
}
Мои Класс приложения, который называется программой:
public class App {
public static void main(String[] args) throws IOException {
Register register = new Register("location/accounts.txt");
Authenticate auth = new Authenticate();
auth.signIn("David", "5678");
}
}
Проблема заключается в том, когда я прохожу в «Alex» «1234» в методе, например, выход
подписан в успешно!
вход не удался
И когда я прохожу в «Давиде», «5678» я получаю
знак в неудавшейся
подписанного в успешно!
Я хочу, чтобы приложение выводило «подписанные успешно» и «вход в систему не удалось» только один раз в зависимости от введенных учетных данных.
Большое спасибо!
Просто создать строковую переменную с: результат String = «Ошибка входа»; перед вашей петлей. Затем измените результат, если пользователь был найден к вашему результату.после того, как цикл напишет переменную результата на выходе консоли. Кроме того, вы также можете сделать перерыв, когда вы нашли пользователя -> нет смысла читать остальное, если вы нашли совпадение – Gildraths
У меня есть лучшее понимание проблемы. Каждый раз, когда он зацикливается на файле и находит имя пользователя и пароль, которые не соответствуют ему, вызывает «вход в систему не удался», пока он окончательно не найдет имя пользователя и пароль, он назовет «успех входа» n – BigAl1992
Если это то, что вы хотите просто добавить ломать; после консольного вывода успеха – Gildraths