每次执行fi.read()都是读取demo.txt文件的一个字符,返回该字符,然后将读文件指针移到下一个字符处,下次再调用fi.read()就是返回这个字符,然后再将读文件指针移动一位,如此反复,直接到达文件末尾,返回-1.
你程序里while ((num=fi.read())!=-1)每次判断循环条件时fi.read()执行一次,然后 System.out.print((char)fi.read());打印时又执行了一次fi.read(), 所以最后读出来的字符是demo.txt中隔一个字符才打印一个字符,只打印奇数位(从1开始数的话)。 |