黑马程序员技术交流社区

标题: 在IO流中自定义数组读写时的问题 [打印本页]

作者: 郭涛    时间: 2013-12-24 21:45
标题: 在IO流中自定义数组读写时的问题
  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?
作者: 熊志伟    时间: 2013-12-24 22:02
读入缓冲区的字节总数,如果因为已经到达流末尾而没有更多的数据,则返回 -1。具体参见FileInputStream的 read(byte[] b)方法
作者: 75100313    时间: 2013-12-25 14:30
public abstract int read() throws IOException
这个方法的api
返回:
下一个数据字节;如果到达流的末尾,则返回 -1。
下回好好看看api
作者: duanyoujiji    时间: 2013-12-28 12:50
java文档中是返回-1代表末尾的。




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