末尾练习题的疑问
while循环中,n=fis.read()语句放在输出语句后就一切正常。
放在输出语句前,结果会输出文本内容,然后报错,提示输出语句 java.util.IllegalFormatCodePointException。
这是什么原因呢?请老师解答一下
17
收起
正在回答
1回答
问题出在 System.out.printf("%c",n);上,你可以改成System.out.print((char)n);就行了不出异常了。但这样一来,你有没有发现“n=fis.read()放在输出语句前”则会少输出一个字符?这是因为你在int n=fis.read()的时候就已经指向了第一个字符,然后进入循环后没输出又指向了下一个字符。万一这是文件的末尾没内容就会出现异常了。这不是正确的写法,正确的就应该把“n=fis.read()放在输出语句后面”。祝:学习愉快
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星