黑马程序员技术交流社区

标题: 【黑马云青年 胡浩】为什么这个序列流中要传入一个枚举... [打印本页]

作者: 胡浩    时间: 2013-5-27 10:15
标题: 【黑马云青年 胡浩】为什么这个序列流中要传入一个枚举...
本帖最后由 胡浩 于 2013-5-30 11:33 编辑

Enumeration<FileInputStream> en=new Enumeration<FileInputStream>();
SequenceInputStream ss=new SequenceInputStream();
为什么这个序列流中要传入一个枚举类型?请详解一下。
作者: chensc    时间: 2013-5-27 10:43
想学习学习!
作者: Miss小强    时间: 2013-5-27 12:41
首先你得了解序列流的作用,api文档这样说的:
SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
他是对一个流集合进行读取操作的;
在看看他的版本是从1.0开始的;
那个时候就只有Enumeration(跟enum不同的概念),
List1.2才出现的;

搞清楚了这个问题,所有的问题都解决了

希望对你有用;
黑马云青年为你解答。。
作者: 胡浩    时间: 2013-5-27 12:52
Miss小强 发表于 2013-5-27 12:41
首先你得了解序列流的作用,api文档这样说的:
SequenceInputStream 表示其他输入流的逻辑串联。它从输入流 ...

也就是说SequenceInputStream这个流需要操作一个有序的集合,那为什么不可以用Arraylist集合,一定要用
Enumeration
作者: ozt6719393    时间: 2013-5-27 13:44
所谓序列流,就是要把几个流对象合成一个流,所有序列流的构造函数中要求参数是枚举,
希望对你有帮助
作者: Miss小强    时间: 2013-5-27 14:31
胡浩 发表于 2013-5-27 12:52
也就是说SequenceInputStream这个流需要操作一个有序的集合,那为什么不可以用Arraylist集合,一定要用
E ...

上面都说过了:
List集合是1dk1.2才出现的
而序列流是1.0就出现了。这个时候ArrayList还没出生,怎么用???
Enumeration也是1.0出现的。只能用Enumeration;
建议看api文档,一切见分晓。

作者: Miss小强    时间: 2013-5-27 14:34
ozt6719393 发表于 2013-5-27 13:44
所谓序列流,就是要把几个流对象合成一个流,所有序列流的构造函数中要求参数是枚举,
希望对你有帮助 ...

楼上此言差矣。
所谓序列就是把一个序列的流,就像工厂里的流水线一样,而不是合成一个流。。。
因此我们也可以不传递一个集合,可以传递多个流对象。。。
看api文档吧。。。一切见分晓。。。




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