У меня есть текстовый файл с именем UserDetails.txt , с которого я пытаюсь прочитать.
Каждая строка текстового файла выглядит следующим образом:
John : Doe : Seattle : jd3 : 1234
Jane : Doe : Olympia : jd4 : 5678
, где последние две переменные - это имя пользователя и пароль, которые я пытаюсь найти.
Мой код:
public class LoginFrame extends javax.swing.JFrame
{
private static Scanner keyboard = new
Scanner(System.in);
String username;
String password;
String filePath = "UserDetails.txt";
public LoginFrame() {
initComponents();
}
private void jButtonLoginActionPerformed(java.awt.event.ActionEvent evt) {
username = jTextFieldUsername.getText();
password = jTextFieldPassword.getText();
verifyLogin(username,password,filePath);
}
public static void verifyLogin(String username,
String password, String filepath)
{
boolean match = false;
String tempUserName = "";
String tempPassword = "";
try
{
keyboard = new Scanner(new
File(filepath));
keyboard.useDelimiter("[:\n]");
while(keyboard.hasNext() && !match)
{
tempUserName = keyboard.next();
tempPassword = keyboard.next();
if(tempUserName.trim().equals(username.trim()) && tempPassword.trim().equals(password.trim()))
{
match = true;
}
}
keyboard.close();
System.out.print(match);
}
catch (Exception e)
{
System.out.print("Error");
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что я не уверен, как отделить имя пользователя и пароль от имени и фамилии пользователя.Использование разделителя позволяет найти эти два конкретных значения только тогда, когда имя пользователя и пароль являются единственными двумя переменными в текстовом файле (без имени и фамилии).