仅产生一次错误输出

时间:2018-07-30 12:02:59

标签: java login reader

我最近开始学习Java,我打算创建一个具有文本文件验证功能的登录系统。该图显示了我打算进行的登录验证。 Intending flow of operation

BufferedReader bra = new BufferedReader(new FileReader("C:\\Users\\Owner\\Desktop\\Admin.txt"));
int num = typebox.getSelectedIndex();
switch (num)
{
   case 0: while ((reader = bra.readLine()) != null)
   {
       String[] split0 = reader.split("\\s");
       User admin = new User();
       admin.username = nametextbox.getText();
       admin.password = passtextbox.getText();

       \\login verification               
       if (admin.username.equals(split0[0]) && admin.password.equals(split0[1]))
       {
            bra.close();
            A_Selection puff = new A_Selection();
            puff.pack();
            puff.setLocationRelativeTo(null);
            puff.setVisible(true);
       }
       else
       {
            bra.close();
            JOptionPane.showMessageDialog(null, "Error, wrong username or password!", "Error", JOptionPane.ERROR_MESSAGE);
        } 
   }
}
break;

但是,它倾向于重复错误部分,直到文本文件中的行数结束。有什么方法可以使系统在读取整个文件后仅产生一次错误输出?

2 个答案:

答案 0 :(得分:0)

休息应该可以。

...
else
{
   bra.close();
   JOptionPane.showMessageDialog(null, "Error, wrong username or password!", "Error", JOptionPane.ERROR_MESSAGE);
   break;
} 
...

答案 1 :(得分:0)

已解决: 我已经弄清楚了,借助于声明另一个变量和if条件的帮助。

int flag = 0; 
if (admin.username.equals(split0[0] && admin.password.equals(split0[1]))
{
    flag = 1;
    if (flag == 1)
    {
        A_Selection puff = new A_Selection();
        puff.pack();
        puff.setLocationRelativeTo(null);
        puff.setVisible(true);
    }
}
\\outside while loop
if (flag == 0)
{
     JOptionPane.showMessageDialog(null, "Error");
}