不能在Java中正确读取文件

时间:2014-12-05 13:43:35

标签: java readline

我正在尝试制作一款游戏,而我正在整理帐户,并且我现在正在文本文件中进行操作,因为我只是玩游戏,例如文本文件是

用户名
密码

当我运行下面的代码时,每当我输入的详细信息正确时,它都会运行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();
}

3 个答案:

答案 0 :(得分:2)

if (userData[0].equals(username) && userData[1].equals(password)){
   player = username;
   System.out.println(player);
}

答案 1 :(得分:1)

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

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

这一个:

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

答案 2 :(得分:0)

试试这个

    if (userData[0].equals(username) && userData[1].equals(password)){
            player = username;
            System.out.println(player);
    }
    else{
            System.out.println("Username, "+username+" does not exist, please try again!");
            loadPlayer();
    }