Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 如何从文本文件检查用户名和密码的有效性_Java - Fatal编程技术网

Java 如何从文本文件检查用户名和密码的有效性

Java 如何从文本文件检查用户名和密码的有效性,java,Java,我想读取文本文件的内部内容,并匹配用户在登录页面中输入的帐号和pin 这是我的文本文件格式 0,admin,lastAdmin,1122334455,123456. 0代表id admin代表name lastAdmin代表lastName 1122334455代表帐号 123456代表pin 这是我有错误的代码 package atm; import java.io.BufferedReader; import java.io.FileInputStream; import java

我想读取文本文件的内部内容,并匹配用户在登录页面中输入的帐号和pin

  • 这是我的文本文件格式

    0,admin,lastAdmin,1122334455,123456.
    
    0代表id

    admin代表name

    lastAdmin代表lastName

    1122334455代表帐号

    123456代表pin

  • 这是我有错误的代码

    package atm;
    
    import java.io.BufferedReader;
    
    import java.io.FileInputStream;
    
    import java.io.InputStreamReader;
    import java.util.Scanner;
    
    public class Login {
    
        public void verifyLogin(){
            String accountNumber;
            String pin;
            Scanner data = new Scanner(System.in);
    
            try{
                FileInputStream fis = new FileInputStream("myDataBase.txt");
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
    
                String line;
                while ((line = br.readLine()) !=null ){
                  String[] lineSpliter = line.split(",");
                  if (accountNumber.equals(accountNumber) && pin.equals(pin)){
                      br.readLine(lineSpliter[6] + ',' +lineSpliter[8]);
                  }
                }
            }
        catch (Exception e){
        }
    }
    }
    

您需要找到由
名称
标识的行,并比较
pin

String name = "admin";
String pin = "123456";
Path path = Path.of("myDatabase.txt");
try (BufferedReader reader = Files.newBufferedReader(path)) {
    String[] row = reader.lines()
            .map(s -> s.split(","))
            .filter(r -> r[1].equals(name))
            .findFirst()
            .orElseThrow(() -> new IllegalArgumentException("Name not found"));
    if (row[4].equals(pin)) {
        System.out.println("Correct pin");
    }
}

您能发布堆栈跟踪吗?请不要将PIN或任何其他密码存储为纯文本。@KarolDowbecki您能完成我的代码吗?@空白您的代码毫无意义,例如
accountNumber.equals(accountNumber)
。Self等于Self,但变量必须初始化。@KarolDowbecki是的,但我的教授想将数据保存在文本文件中。