不明符号
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
(它保持较早的值,即测试).
鉴于以下情况:
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
(它保持较早的值,即测试).