不明符号

Unidentified symbol

鉴于以下情况:

import java.io.*;

public class WriteRead {

    public void writeToFile(String filename) throws IOException {
        FileWriter fw = new FileWriter(filename);
        fw.write("testing");
        fw.close();
    }

    public String readFromFile(String filename) throws IOException {
    String str = "";
    int characterInt = 0;
    FileReader fr = new FileReader(filename);
        while (characterInt != -1) {
            characterInt = fr.read();
            str += "" + (char) characterInt;
        }
    fr.close();
    return str;
  }

  public static void main(String[] args) throws IOException {
    WriteRead wR = new WriteRead();
    wR.writeToFile("test.java");
    System.out.println(wR.readFromFile("test.java"));
  }
}

当我 运行 程序打印如下:

"testing" 末尾的符号是什么?程序的哪一部分导致它出现?

进行如下更改:

while ((characterInt = fr.read()) != -1) {
            //characterInt = fr.read();
            str += "" + (char) characterInt;
        }

阅读 char 并将其与 -1 as EOF 进行比较。您在字符串中附加 end of file char,然后 while 循环条件失败。

使用下面的代码-

while ((characterInt = fr.read()) != -1) {
            str += "" + (char) characterInt;
        }

因为在上次迭代中读取 -1 这会在 str 中附加 ? 所以请在 adding.and 之前检查 testing0 的显示请先给我这个的十六进制代码。

您正在 while 循环中设置 characterInt = fr.read();。您应该在 while 循环之外或在 while() 条件中设置它。

因此,根据您的代码,第二次迭代将 运行 也是因为在第二次迭代中,您的 characterInt 不等于 -1(它保持较早的值,即测试).