Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用GUI正确比较文本文件中的行和用户输入_Java_String_User Interface_Bufferedreader_Filewriter - Fatal编程技术网

Java 如何使用GUI正确比较文本文件中的行和用户输入

Java 如何使用GUI正确比较文本文件中的行和用户输入,java,string,user-interface,bufferedreader,filewriter,Java,String,User Interface,Bufferedreader,Filewriter,我一直在互联网上漫游,收集信息并使用它们,但我似乎无法成功地将文本文件中的一行文本与使用gui的用户输入进行比较 文件名:MainLogin.Java String user, pass; user = txtUser.getText(); pass = txtPass.getText(); try (BufferedReader br = new BufferedReader(new FileReader("profiles.txt"))) { String sCurrentLin

我一直在互联网上漫游,收集信息并使用它们,但我似乎无法成功地将文本文件中的一行文本与使用gui的用户输入进行比较

文件名:MainLogin.Java

String user, pass;

user = txtUser.getText();
pass = txtPass.getText();

try (BufferedReader br = new BufferedReader(new FileReader("profiles.txt"))) {
    String sCurrentLine;

    while ((sCurrentLine = br.readLine()) != null) {
        System.out.println(sCurrentLine);

        if (sCurrentLine.equals(user) && sCurrentLine.equals(pass)) {
            JOptionPane.showMessageDialog(null, "Login Successful!");
            MainWindow mw = new MainWindow();
            dispose();
        }
        else {
            JOptionPane.showMessageDialog(null, "Wrong Username and/or Password!");
        }
    }
}
catch (IOException io) {
    io.printStackTrace();
}
下面是我如何使用“注册”方法写入文本文件

文件名:Registration.java

String name, user, pass, address;
int contactNo;
float deposit;

name = txtName.getText();
user = txtUser.getText();
pass = txtPass.getText();
address = txtPass.getText();
contactNo = Integer.parseInt(txtContact.getText());
deposit = Float.parseFloat(txtDeposit.getText());

//u = new User(name , user, pass, address, contactNo, deposit);

try {
    writer = new BufferedWriter(new FileWriter("profiles.txt", true));
    writer.write(name + "\r\n");
    writer.write(user + "\r\n");
    writer.write(pass + "\r\n");
    writer.write(address + "\r\n");
    writer.write(contactNo + "\r\n");
    writer.write(Float.toString(deposit) + "\r\n");
    //writer.write("------------------------------------------------------------");
}
catch (IOException ex) {
    // report
}
finally {
    try {
        writer.close();
    }
    catch (Exception ex) {/*ignore*/}
}

JOptionPane.showMessageDialog(null, "Registered!");

MainLogin ml = new MainLogin();
dispose();

sCurrentLine.equals(user)和&sCurrentLine.equals(pass)
因此
sCurrentLine
应该同时等于用户名和密码?除了你的问题之外,我认为将普通登录凭据/用户数据写入文件不是一个非常好和安全的解决方案。在文件中写入内容时使用“\r”和“\n”,因此用户名和密码不可能在同一行。