鉴于以下内容:
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"));
}
}
当我运行程序时,它打印以下内容:
“测试”结束时的符号是什么,程序的哪个部分会导致它出现?
答案 0 :(得分:2)
使用以下代码 -
ResponseContentRead
因为在最后一次迭代中,这会在while ((characterInt = fr.read()) != -1) {
str += "" + (char) characterInt;
}
上显示-1
,所以请在添加之前进行检查。并且只要您对?
的显示有疑问,请给我第一个十六进制代码。
答案 1 :(得分:1)
进行如下更改:
while ((characterInt = fr.read()) != -1) {
//characterInt = fr.read();
str += "" + (char) characterInt;
}
阅读char
并将其与-1 as EOF
进行比较。您正在将end of file char
附加到字符串中,然后while循环条件失败。
答案 2 :(得分:1)
您在characterInt = fr.read();
循环中设置了while
。您应该在while
循环之外或while()
条件下设置此值。
因此,根据您的代码,它将运行第二次迭代,因为在第二次迭代中,您的characterInt
不等于-1
(它保持较早的值,即测试)。