比较保存的TXT和EditText文本

时间:2018-10-08 14:06:55

标签: android file

我想创建一个比较密码(4个字母数字)的系统。

输入代码(我已经有fis)

fis = openFileInput(FILE_NAME);
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);
        StringBuilder sb = new StringBuilder();
        String text;

        while((text = br.readLine()) != null)
        {
            sb.append(text).append("\n");
        }

        String finalinput = sb.toString();

        String finalpassinput = password.getText().toString();

        Toast.makeText(this, "finalinput:"+finalinput+"finalpassinput:"+finalpassinput,Toast.LENGTH_LONG).show();

        if(finalinput.equals(finalpassinput))
        {
            Toast.makeText(this,"Login!", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(MainActivity.this, HomeActivity.class));
        }
        else
        {
            Toast.makeText(this,"Incorrect Password",Toast.LENGTH_SHORT).show();
        }

并且此源代码会一直说这两个密码不同。
我如何写文件:

fos = openFileOutput(FILE_NAME_PW, MODE_PRIVATE);
        fos.write(encodedpw.getBytes());
        Toast.makeText(this, "Saved to " + getFilesDir() + "/" + FILE_NAME_PW, Toast.LENGTH_LONG).show();

我很好奇是否encodepw.getBytes()会将字符串更改为任何内容(包括空字符等),并且Java是否会认为它们不相同。 谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了答案。 finalinput变量前面有一些空字符,因此您可以使用此函数获取纯字符串。

public static String FileStringParse(String FileString)
{
    FileString = FileString.replaceAll("\\D+","");
    return FileString;
}