A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© taoge 中级黑马   /  2013-12-18 22:10  /  994 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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
好多都没有显示,求解?

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
while ((fReader.read()) != -1)
  {
   System.out.print((char)fReader.read());
  }
你这样写实际上是循环一次,读了两次,但是只输出一次,你没发现你输出的字符全是间隔一个输出的吗?
回复 使用道具 举报
~IN_HAND~ 发表于 2013-12-18 22:40
while ((fReader.read()) != -1)
  {
   System.out.print((char)fReader.read());

茅塞顿开啊:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马