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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© atlas 中级黑马   /  2014-10-13 15:17  /  2690 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 第二种方式:通过字符数组进行读取。
  3. */
  4. public class test {
  5.         public static void main(String[] args) throws Exception {
  6.                 FileReader fr = new FileReader("e:\\demo.txt");
  7.                 //定义一个字符数组。用于存储读到的字符。
  8.                 //该read(char[])返回的是讲到字符个数。
  9.                 char[] buf = new char[3];
  10.                 int num = 0;
  11.                 while((num=fr.read(buf))!=-1){
  12.                         sop(new String(buf,0,num));
  13.                 }
  14.         }
  15.        
  16.        
  17.         public static void sop(Object obj){
  18.                 System.out.println(obj);
  19.         }
  20. }
复制代码

代码如上,(num=fr.read(buf))!=-1,为什么会让它不等于-1呢,这个-1什么情况下出现。

1 个回复

倒序浏览
判断循环条件是否等于 -1 ,主要是因为  read()  方法
你使用的是 read( char[] ) 方法 ,  那么在读取数据时会返回相应的字符个数,  如果没有读到数据,则会返回 -1
在正常运行的情况下,read() 方法只要没有读取到数据的时候都会返回 -1
这也是什么在写循环条件时 要判断是否为 -1 的情况
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马