有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java AndroidWriting到文件会导致随机字符

arg

我试图从用户输入中获取信息,然后将其写入系统文件。我得到输入,然后调用getBytes。它会沿着“null”和其后的随机数行记录到文件中。我试着把它放到一根绳子上,但运气不好,那是一个随机的符号链 具体代码如下:

        TextView note_input=(TextView) findViewById(R.id.note_input);
    FileOutputStream fos=null;
    String newNote=note_input.getText().toString();
    Log.w("Debug",newNote);
    try {
        fos=openFileOutput("currentNote",Context.MODE_APPEND);
    } catch (FileNotFoundException e) {
        //IT_SHOUD_NOT_EXIST
    }
    try {
        Log.w("Debug",newNote.getBytes().toString());
        fos.write(newNote.getBytes());
        fos.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

谢谢你的帮助


共 (2) 个答案

  1. # 1 楼答案

    这只是一个猜测,但我注意到您在调用getBytes()时没有指定字符编码。除非输出文件的字符编码与系统默认编码相同,否则很容易在输出上出现乱码

  2. # 2 楼答案

    绳子。getBytes返回字节数组,当您尝试执行toString()时,实际上是在编写指向字符串的指针。你已经换了这行了

    Log.w("Debug",newNote.getBytes().toString());
    

    进入

    Log.w("Debug",newNote);
    

    您将有正确的日志输出,文件应该已经正确写入

    希望这对你有所帮助并享受你的工作