黑马程序员技术交流社区
标题:
问题
[打印本页]
作者:
风云
时间:
2013-6-3 15:50
标题:
问题
/*
把多个流合并一个流
*/
import java.io.*;
import java.util.*;
class
{
public static void main(String[] args)
{
Vector<FileInputStream> v = new Vector<FileInputStream>();
v.add(new FileInputStream(F:\\javatest\\1.txt));
v.add(new FileInputStream(F:\\javatest\\2.txt));
v.add(new FileInputStream(F:\\javatest\\3.txt));
Enumeration<FileInputStream> en = new v.elements();
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fw = new FileOutputStream(F:\\javatest\\4.txt))
byter[] arr = new byter[1024];
int len=0;
while((len=sis.read(arr))!=-1)//这句话该怎么理解,一直感觉有迷惑,
{
fos.writer(buf,0,len);
}
fos.close();
sis.close();
}
}
作者:
youngster
时间:
2013-6-3 16:39
其实我猜楼主主要是问其中的判定条件是在干嘛。
sis.read(arr),是往arr数组里读数据,返回的是int型的长度,用定义的int len接收了下,
len不等于-1就说明数据还没有读完,就是说后边还有数据,还要继续while,
当等于-1了就说明数据读光了,返回了-1,自然while就停了下来。
作者:
First
时间:
2013-6-3 18:05
这句话应该是说 只有读到最后一个流的-1是才会当做大流的结束标记来对待,
当读到其他的-1时 不会结束,会继续读取大流中的数据
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2