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 ...
随机推荐
- mod_rewrite是Apache的一个非常强大的功能
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法!对初学者很有用的哦! 1.检测Apache是否支持mod_rewrite 通过php提供的p ...
- PAT Basic 1104 数字⿊洞 (20) [数学问题-简单数学]
题目 给定任⼀个各位数字不完全相同的4位正整数,如果我们先把4个数字按⾮递增排序,再按⾮递减排序,然后⽤第1个数字减第2个数字,将得到⼀个新的数字.⼀直重复这样做,我们很快会停在有"数字⿊洞 ...
- 数据分析-Numpy-Pandas
补充上一篇未完待续的Numpy知识点 索引和切片 数组和标量(数字)之间运算 li1 = [ [1,2,3], [4,5,6] ] a = np.array(li1) a * 2 运行结果: arra ...
- NOIp2017TG解题报告
NOIp2018RP++! 虽然没去但还得写写QAQ D1T1 : 小凯的疑惑 数学题 手推几组数据然后发现规律 \(Ans = (a-1)(b-1)+1\) AC in 1minite D1T2 : ...
- 如何判断Office是32位还是64位?
对于持续学习VBA的老铁们,有必要了解Office的位数. 如果系统是32位的,则不需要判断Office位数了,因为只能安装32位Office. 下面只讨论64位系统中,Office的位数判断问题. ...
- Python 学习笔记:根据输入年月区间,返回期间所有的月份
目的: 给定一个年月区间,比如:2019.01 至 2019.05,要求返回一个包含期间所有的月份的列表,比如:['2019.01', '2019.02', '2019.03', '2019.04', ...
- CSP模拟赛2游记
这次由于有课迟到30min,了所以只考了70min. 调linux配置调了5min,只剩下65min了. T1:有点像标题统计,但要比他坑一点,而且我就被坑了,写了一个for(int i=1;i< ...
- JS控制 input 输入字符限制全搜集
ENTER键可以让光标移到下一个输入框 <input onkeydown="if(event.keyCode==13)event.keyCode=9" > 只能是中文 ...
- Android圆角布局、天气应用、树状图、日食动画、仿饿了么导航效果等源码
Android精选源码 Android通用圆角布局源码 Android天气应用源码,界面美观 一个支持定制的树状 Android 自定义View PIN 码专用输入控件,支持任意长度和输入任意数据 A ...
- PyTorch基础——迁移学习
一.介绍 内容 使机器能够"举一反三"的能力 知识点 使用 PyTorch 的数据集套件从本地加载数据的方法 迁移训练好的大型神经网络模型到自己模型中的方法 迁移学习与普通深度学习 ...