黑马程序员技术交流社区
标题:
关于num=fr.read(buf))!=-1的问题
[打印本页]
作者:
atlas
时间:
2014-10-13 15:17
标题:
关于num=fr.read(buf))!=-1的问题
/*
第二种方式:通过字符数组进行读取。
*/
public class test {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader("e:\\demo.txt");
//定义一个字符数组。用于存储读到的字符。
//该read(char[])返回的是讲到字符个数。
char[] buf = new char[3];
int num = 0;
while((num=fr.read(buf))!=-1){
sop(new String(buf,0,num));
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
代码如上,(num=fr.read(buf))!=-1,为什么会让它不等于-1呢,这个-1什么情况下出现。
作者:
SelonLiao
时间:
2014-10-13 15:36
判断循环条件是否等于 -1 ,主要是因为 read() 方法
你使用的是 read( char[] ) 方法 , 那么在读取数据时会返回相应的字符个数, 如果没有读到数据,则会返回 -1
在正常运行的情况下,read() 方法只要没有读取到数据的时候都会返回 -1
这也是什么在写循环条件时 要判断是否为 -1 的情况
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2