我正在尝试创建一个非常基本的登录系统,用于验证用户输入存储在文本文件中的用户名和密码。我查看了本网站和其他地方的其他示例,但我无法让它们正常工作。我知道文本文件不安全,但这仅用于学习目的,不会在任何严重的情况下实施。
它正在阅读的文本文件包含以下两行格式"用户名,密码"
student1,student1
STUDENT2,STUDENT2
目标是让If语句验证登录凭据,然后打开下一帧。我还没有添加该部分的代码,因为我无法调试所有内容。
以下是代码:
btnLogin.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
File loginf = new File("users.txt");
try{
Scanner read = new Scanner(loginf);
read.useDelimiter(",");
boolean login = false;
while(read.nextLine() !=null){
String user = read.next();
String pass = read.next();
read.next();
if(username.getText().equals(user) && passwordField.getText().equals(pass)){
login = true;
break;
}
}
if(login)
System.out.println("good"); //using for testing purposes
else {
JOptionPane.showMessageDialog(null, "Incorrect username or password");
username.setText("");
passwordField.setText("");
}
read.close();
}
catch (FileNotFoundException qwerty){
JOptionPane.showMessageDialog(null, "Can't find a text file");
}
}
});
提前感谢您的所有帮助。
答案 0 :(得分:0)
你可能想要使用这样的东西。
Scanner read = new Scanner(loginf);
read.useDelimiter("\\n|,");
boolean login = false;
while(read.hasNext()){
String user = read.next();
String pass = read.next();
System.out.println(user + " " + pass);
}
我做了
答案 1 :(得分:0)
将分隔符更改为:
,丢弃Scanner
,然后使用java.util.Properties.
答案 2 :(得分:0)
在获取用户并传递后,只需删除read.next()行。它肯定会起作用。