Java IO流-合并流
发布日期:2022-04-02 18:15:45
浏览次数:9
分类:博客文章
本文共 1744 字,大约阅读时间需要 5 分钟。
2017-11-05 20:15:28
- SequenceinputStream
SequenceinputStream:SequenceInputStream
表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
*构造方法
*常用方法
public class Demo6 { public static void main(String[] args) throws IOException { InputStream in1 = new FileInputStream("E:/text.txt"); InputStream in2 = new FileInputStream("E:/text2.txt"); SequenceInputStream sis = new SequenceInputStream(in1, in2); BufferedOutputStream bs = new BufferedOutputStream(new FileOutputStream("" + "E:/copy.txt")); byte[] bys = new byte[1024]; int len = 0; while ((len = sis.read(bys)) != -1) { bs.write(bys, 0, len); } bs.close(); sis.close(); }}
如果超过两个该怎么办呢?其实该类还提供了另一个构造方法:public SequenceInputStream(Enumeration<? extends InputStream> e)
这里的Enumeration枚举器是Vector类的一个方法的返回值:public Enumeration<E> elements()
剩下的就非常简单了:
public class Demo6 { public static void main(String[] args) throws IOException { Vectorv = new Vector<>(); InputStream in1 = new FileInputStream("E:/text.txt"); InputStream in2 = new FileInputStream("E:/text2.txt"); InputStream in3 = new FileInputStream("E:/text3.txt"); v.add(in1); v.add(in2); v.add(in3); Enumeration enumeration = v.elements(); SequenceInputStream sis = new SequenceInputStream(enumeration); BufferedOutputStream bs = new BufferedOutputStream(new FileOutputStream("" + "E:/copy.txt")); byte[] bys = new byte[1024]; int len = 0; while ((len = sis.read(bys)) != -1) { bs.write(bys, 0, len); } bs.close(); sis.close(); }}
转载地址:https://www.cnblogs.com/hyserendipity/p/7788644.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月09日 18时10分12秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
1026 程序运行时间 (15 分)
2019-04-26
以太坊智能合约开发-《精通以太坊智能合约开发》学习总结实践
2019-04-26
Parabolic SAR(抛物线转向指标)
2019-04-26
java 通用内存分页(List分页)
2019-04-26
什么是WebAuthn、FIDO 是什么?
2019-04-26
Hibernate JPA-原生查询返回BigIntegers而不是long
2019-04-26
Apollo-本地开发模式(不接入配置中心进行本地开发 env=Local)
2019-04-26
拜占庭容错共识(PBFT)
2019-04-26
预言机如何读取和验证数据?
2019-04-26
git- git checkout 创建新的分支、切换分支、切换到指定tag
2019-04-26
什么是非同质化代币(NFT)\ NFT有哪些应用?
2019-04-26
VRF是什么?
2019-04-26
Qt:01---Qt Creator与SDK的下载与安装
2019-04-26
【直播回顾】获取 iOS 用户,您还可以这么做
2019-04-27
如何保证游戏长盛不衰
2019-04-27
Kotlin Vocabulary | 内联函数的原理与应用
2019-04-27
467_Arduino AD采集范围标定
2019-04-27