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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭涛 中级黑马   /  2013-12-24 21:45  /  1219 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. FileInputStream fis = new FileInputStream("C:/Users/king/Desktop/Readme.txt");
  2.                 FileOutputStream fos = new FileOutputStream("bcd.txt");
  3.                 int len;
  4.                 byte[] arr= new byte[1024];
  5.                 while((len = fis.read(arr)) != -1){
  6.                         fos.write(arr, 0, len);
  7.                 }
  8.                 fis.close();
  9.                 fos.close();
复制代码

在上面的IO流读写中,我自定义了一个数组去进行复制。
那么len是代表数组的长度的,为什么在while循环的判断条件中是!=-1而不是!=0?

评分

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

查看全部评分

3 个回复

倒序浏览
读入缓冲区的字节总数,如果因为已经到达流末尾而没有更多的数据,则返回 -1。具体参见FileInputStream的 read(byte[] b)方法
回复 使用道具 举报
public abstract int read() throws IOException
这个方法的api
返回:
下一个数据字节;如果到达流的末尾,则返回 -1。
下回好好看看api

评分

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

查看全部评分

回复 使用道具 举报
java文档中是返回-1代表末尾的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马