while((int)(num=fr.read())!=-1)
int a=fr.read();
看到没?你读了两次(两次read)
其实while((int)(num=fr.read())!=-1)中,num就已经是记录了读取到的内容了,然后循环题中你又读取了一次,把while()中读取的东西扔了。
建议lz查一下FileReader的api,比我说的清楚多了。
请参考
public int read()
throws IOException
返回:
作为整数读取的字符(注意字符两个字),范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1 作者: 旅行。 时间: 2014-8-30 13:02
视频里应该没写这个 int a=fr.read();