在文本文件中搜索用户名和密码以及其他变量?

时间:2019-02-15 06:56:56

标签: java jframe delimiter readfile file-search

我有一个要读取的名为 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");
   }
}

我遇到的问题是我不确定如何区分用户名和密码与用户的名字和姓氏。仅当用户名和密码是文本文件中仅有的两个变量(删除了名字和姓氏)时,使用定界符才能找到这两个特定值。

1 个答案:

答案 0 :(得分:0)

阅读整行,然后就可以使用

    String str = "John : Doe : Seattle : jd3 : 1234"; // input line that you read from file
    String[] arr = str.split(" : ");
    String username = arr[3]; // as index starts from 0;
    String password = arr[4]; // similarly you can get other values

将其转换为一个字符串数组,该字符串的用户名将位于索引3 和密码在索引4