黑马程序员技术交流社区

标题: FileReader的问题 [打印本页]

作者: taoge    时间: 2013-12-18 22:10
标题: FileReader的问题
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo
{
public static void main(String[] args) throws IOException
{
  FileReader fReader = new FileReader("D:\\win8.txt");
  /*int ch = 0;
  while ((ch = fReader.read()) != -1)
  {
   System.out.print((char) ch);
  }*/
  while ((fReader.read()) != -1)
  {
   System.out.print((char)fReader.read());
  }
  fReader.close();
}
}
注释掉的是正确的代码,其中win8.txt文本如下:
slmgr.vbs   -ipk  GNFT6-F8XPT-24KP8-82FMV-46V3P  
005363  904182  318470  041451  575222  579883  719085  727901
V69W6-XMJ2P-NVC44-PHB2J-VH3JD
D2C8H-NJCJQ-69TDT-CWPW9-TFYQH

但是用下面的代码输出是这些东西:
lg.b  ik NT-8P-4P-2M-63
056 948 387 015 552 598 798 770
6W-M2-V4-H2-HJ
DCHNCQ6TTCP9TYH
好多都没有显示,求解?


作者: ~IN_HAND~    时间: 2013-12-18 22:40
while ((fReader.read()) != -1)
  {
   System.out.print((char)fReader.read());
  }
你这样写实际上是循环一次,读了两次,但是只输出一次,你没发现你输出的字符全是间隔一个输出的吗?
作者: taoge    时间: 2013-12-18 22:55
~IN_HAND~ 发表于 2013-12-18 22:40
while ((fReader.read()) != -1)
  {
   System.out.print((char)fReader.read());

茅塞顿开啊:lol




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2