繁体   English   中英

如何使用文件流在Java中创建登录表单?

[英]How do I create a login form in Java using file stream?

您好,我是一名新的Java学生,我一直在一个包含(用户-图书馆工作人员和书籍)的图书馆系统上工作,因此我试图创建登录表单,我已经有了一个数组列表,但是我做了一个文件流(以澄清我让新用户注册,他/她的信息将被保存到该文件中,例如ID ID密码Age),因此我尝试在类库users类中执行此方法

      private Scanner x;
      private String user_name , password ;
      public void openfile(){
      try {x= new Scanner (new File ("E:\\javaapplication1
      \\test\\professors.txt"));
              }
      catch(Exception e){
      System.out.println("couldn't find file");
      }
      }
      public void checklog ( String username , String password ){
       String a , b ,c ,d ;


       while(x.hasNext()){
       a = x.next();
       b = x.next();
       c = x.next();
       d = x.next();

       if ( b == username ||c == password ){

        System.out.println("Loggin successful ");

       }
       else
           System.out.println("Loggin failed wrong id or password ");
        break;

然后用完整的代码在主体中这样调用它

        System.out.println ("Enter your name ");
        check_name = reader.next();
        System.out.println ("Enter your password ");
        check_password =reader.next();
         lib_us professor ;
             professor = new lib_us(); 

             professor.openfile();
             professor.checklog(check_name, check_password);

我把所有密码都弄错了我像4个id名称密码和年龄一样保存它们,这就是为什么我创建了abc和d ...

我仍然是这种登录形式的新手,因此请指定一种解决方案,如果您需要完整的代码,请索取:)

因此,在您的checkLog()方法中,您有checkLog()语句if(b == username || c == password)应该是if(b.equals(username) && c.equals(password))if(b.equalsIgnoreCase(username) && c.equalsIgnoreCase(password))是否区分大小写(对于大小写敏感,请使用equals()方法;对于不区分大小写,请使用equalsIgnoreCase()方法)。

明白为什么会这样吗? 因为在您的原始声明中,您说的只有一个必须是真实的才能成功登录。 经修订后,两者都必须是真实的。 同样,您不应该使用运算符==比较两个字符串以查看它们是否是相同的字符串。 那只会比较他们的地址。

编辑:如果您的文件有点像下面所示:

12入场证12

13 Namez Passz 13

14 Namezz Passzz 14

尝试使用以下代码阅读并进行比较:

private Scanner x;
private String user_name, password;
public void openFile()
{
    try
    {
        x = new Scanner(new File("FILE PATH"));
    }
    catch(Exception e)
    {System.out.println("Couldn't find file"); System.exit(0);}
}

public boolean checklog(String username, String password)
{
    String temp;
    String[] info;

    while(x.hasNext())
    {
        temp = x.nextLine();
        info = temp.split(" ");

        //info[0] = id, info[1] = username, info[2] = password, info[3] = age;
        //Right here that means the username and password is correct
        if(info[1].equals(username) && info[2].equals(password))
        {
            System.out.println("Login Successful");
            return true;
        }
    }
    System.out.println("Login failed wrong id or password");
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM