FileReader fr = new FileReader("D:\\c语言感悟.txt");
int ch;
while (-1 !=(ch=fr.read())) //20行
{
System.out.printf("%c", (char)ch);
}
请问我将代码改成下面那样为什么输出就会出错?
FileReader fr = new FileReader("D:\\c语言感悟.txt");
while (-1 !=fr.read()) //20行
{
System.out.printf("%c", (char)fr.Read());
}
希望大家帮帮我,谢谢
fr.read执行了两次
循环体内也read了一次。
while 判断的时候就执行了一次fr。read() 到while里面的时候 已经不能fr。read了
System.out.printf("%c", (char)(fr.Read()));
这样还出错吗?
一楼正解。你的第二种写法里面,fr.read执行了两次。
while条件里面执行完成后如果到达文件尾部,再执行fr.read时就会返回-1或者抛出异常了。