Java 获取Enumeration类型的集合
学习到java的io流中关于序列流SequenceInputStream使用,其中把3个以上的流串联起来操作,
使用的参数是生成运行时类型为 InputStream
对象的 Enumeration
型参数,本人对Enumeration集合
了解较少,便记录一下:
方法一:
通过Vector集合来获得:
- InputStream is1 = new FileInputStream("d:\\1.txt");
- InputStream is2 = new FileInputStream("d:\\2.txt");
- InputStream is3 = new FileInputStream("d:\\3.txt");
- OutputStream os = new FileOutputStream("d:\\4.txt");
- //使用Vector集合获取Enumeration
- Vector<InputStream> v = new Vector<InputStream>();
- v.add(is1);
- v.add(is2);
- v.add(is3);
- Enumeration<InputStream> elem = v.elements();
- SequenceInputStream sis = new SequenceInputStream(elem);
- byte[] buf = new byte[1024];
- int len = 0;
- while((len = sis.read(buf)) != -1)
- {
- os.write(buf, 0, len);
- }
如果要想操作里面的元素,可以使用它的两个方法
- 1 //使用Vector集合获取Enumeration
- Vector<InputStream> v = new Vector<InputStream>();
- v.add(is1);
- v.add(is2);
- v.add(is3);
- Enumeration<InputStream> elem = v.elements();
- while(elem.hasMoreElements())
- {
- System.out.println(elem.nextElement());
- }
方法二:
利用List集合+Iterator+匿名内部类方法实现
- InputStream is1 = new FileInputStream("d:\\1.txt");
- InputStream is2 = new FileInputStream("d:\\2.txt");
- InputStream is3 = new FileInputStream("d:\\3.txt");
- OutputStream os = new FileOutputStream("d:\\4.txt");
- LinkedHashSet<InputStream> set = new LinkedHashSet<InputStream>();
- set.add(is1);
- set.add(is2);
- set.add(is3);
- final Iterator<InputStream> it = set.iterator();
- Enumeration<InputStream> en = new Enumeration<InputStream>()
- {
- @Override
- public boolean hasMoreElements()
- {
- // TODO Auto-generated method stub
- return it.hasNext();
- }
- @Override
- public InputStream nextElement()
- {
- // TODO Auto-generated method stub
- return it.next();
- }
- };
- SequenceInputStream sis = new SequenceInputStream(en);
- byte[] buf = new byte[1024];
- int len = 0;
- while((len = sis.read(buf)) != -1)
- {
- os.write(buf, 0, len);
- }
如果要想操作里面的元素,也可以使用它的两个方法
- Enumeration<InputStream> en = new Enumeration<InputStream>()
- {
- @Override
- public boolean hasMoreElements()
- {
- // TODO Auto-generated method stub
- return it.hasNext();
- }
- @Override
- public InputStream nextElement()
- {
- // TODO Auto-generated method stub
- return it.next();
- }
- };
- while(en.hasMoreElements())
- {
- System.out.println(en.nextElement());
- }
Java 获取Enumeration类型的集合的更多相关文章
- Java获取未知类型对象的属性
获取未知类型对象的属性通常有两种方式: 一是通过自定义注解的方式,通过获取被注解的属性从而获取属性的值,这种方式也是Spring参数注入的重要实现手段 二是通过反射获取属性的名称,通过属性名从而获取属 ...
- java获取Timestamp类型的当前系统时间
java获取取得Timestamp类型的当前系统时间 java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new ...
- Java获取Date类型-针对SQL语句
简便使用Date类型: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedState ...
- java获取本地IP地址集合包括虚拟机的ip
public static ArrayList<String> getLocalIpAddr() { ArrayList<String> ipList = new ArrayL ...
- Java获取泛化类型
@Retention(RetentionPolicy.RUNTIME) public @interface MongodbTable { String name(); } public class A ...
- java 获取浏览器类型
public String getBrowserType(HttpServletRequest request) { String type = "ie"; S ...
- java获取系统类型与版本
System的properties中有很多系统属性: System.out.println(System.getProperty("os.name")); System.out.p ...
- 复习java基础第四天(集合:List、Map、Collections、Enumeration)
一.List: List 代表一个元素有序.且可重复的集合,集合中的每个元素都有其对应的顺序索引 List 允许使用重复元素,可以通过索引来访问指定位置的集合元素. List 默认按元素的添加顺序设置 ...
- JAVA获取指定的类型的本机MAC地址
前面我们运维小伙在部署的时候,发现在真实服务器获取不到mac地址或者获取不到指定类型的mac地址,写程序记录如下 import com.google.common.base.Strings; impo ...
随机推荐
- Ubuntu编译protobuf
个人博客地址:http://www.bearoom.xyz/2019/08/24/ubunt-protobuf/ 因为编译了tensorflow C++的版本,然后提示protobuf的版本不对应引起 ...
- 报错:不是GROUP BY 表达式
oracle库中:group by后面必须加上你select后面所查询的所有除聚合函数之外的所有字段. 解决方法:将group by放入子查询中使用或者将select后面的所有查询字段放入group ...
- 大数据攻城狮之进阶技能-Github的使用
引用百度百科中的介绍: github GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub. GitHub于2008年4月10日正式上线 ...
- 《Docekr入门学习篇》——Docker网络及数据卷
Docker网络设置 默认情况下docker会创建一个桥接网卡[docker 0],docker有两种映射方式,一种是随机映射,一种是指定映射. 提示:生产场景一般不使用随机映射,但是随机映射的好处是 ...
- tensorflow模型
图像模型 YOLOv3 , 地址 https://pjreddie.com/darknet/yolo/ vgg , 参考 https://github.com/tensorflow/models/bl ...
- Object中有哪些公共方法及作用
大家在学习java的时候,一定遇到过Object类,因为在java单一继承体系中Object类是根类,所有的类都会继承它,并拥有Object的公共方法,意味着在java的面向对象的世界中,所有对象都拥 ...
- linux设置网络三种方法
http://blog.csdn.net/u010003835/article/details/52233296
- MyBatis从入门到精通(第9章):Spring集成MyBatis(中)
MyBatis从入门到精通(第9章):Spring集成MyBatis(中) 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.应该将应用自身的设计和具体 ...
- Xpath编码问题解决
使用Xpath获取属性时,出现乱码问题,解决办法找了好多,终于解决,特将办法贴在这,供大家尝试 不要直接简单的将爬取的网页设置为utf-8, 先通过print(r.encoding)输出看看爬取的是什 ...
- JS 判断移动端与PC端
js判断移动端与pc端 这里介绍下使用device.js插件来判断移动端设备 地址:https://github.com/matthewhudson/device.js 示例: 1 2 3 4 5 ...