//IO流 合并流 SequenceInputStream
import java.io.*;
import java.uitl.*;
class SequenceDemo
{
public static void main(String[] args) throws IOException
{
Vector<FileInputStream> v = new Vector();//Vector 是个集合对象 //源
v.add(new FileInputStream("c:\\1.txt"));
v.add(new FileInputStream("c:\\2.txt"));
v.add(new FileInputStream("c:\\3.txt"));//把要合并的文件 先添加到 集合里面,再使用elements()枚举方法
Enumeration<FileInputStream> en = v.elements();//elements()枚举方法,取出元素,
//Enumeration是一种迭代器,可以从一种数据结构得到连续数据
//elements() 方法用来返回这个向量的组件的枚举。返回Enumeration对象将生成此向量的所有项目在类似的索引位置。
SequenceInputStream sis = new SequenceInputStream(en);//序列流对象,参数放Enumeration对象
FileOutputStream fos = new FileOutputStream("c:\\4.txt");//目的,文件输出流
byte[] buf = new byte[1024];//缓冲区
int len = 0;
while ((len= sis.read(buf))!=-1)//InputStream的子类,自带read()方法,-1是读取完毕结尾
/* int read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组。 */
{
fos.write(buf,0,len);//fos对象调用write()方法,写入buf数组缓冲区,从下标(off) 0开始,长度len
}
fos.close();
sis.close();
}
}
IO流 合并流 SequenceInputStream
最新推荐文章于 2022-09-24 23:18:40 发布