我正在尝试制作游戏,而我正在整理帐户,并在文本文件中即时进行处理,例如我正在玩,例如文本文件是,

用户名
密码

当我运行下面的代码时,每当我输入的信息正确时,它都会运行else语句。

String player;

Scanner loadPlayer = new Scanner(System.in);
System.out.print("Enter Username: ");
String username = loadPlayer.nextLine();
System.out.println();
System.out.print("Enter Passwork: ");
String password = loadPlayer.nextLine();
System.out.println();

try {
        File file = new File("/home/kieran/Desktop/project/accounts/"+username+".txt");
        FileReader fileReader = new FileReader(file);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        StringBuffer stringBuffer = new StringBuffer();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
                stringBuffer.append(line);
                stringBuffer.append("\n");
        }
        fileReader.close();
        String userData[] = stringBuffer.toString().split("\n");
        System.out.println(userData[0]);
        System.out.println(userData[1]);
        if (userData[0] == username && userData[1] == password){
                player = username;
                System.out.println(player);
        }
        else{
                System.out.println("Username, "+username+" does not exist, please try again!");
                loadPlayer();
        }
} catch (IOException e) {
        e.printStackTrace();
}

最佳答案

您的字符串比较实现不正确。
替换此行

if (userData[0] == username && userData[1] == password){


与此:

        if (userData[0].trim().equals(username.trim()) && userData[1].trim().equals(password.trim())){

关于java - 无法在Java中正确读取文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27317265/

10-11 22:25
查看更多