【Java】SequenceInputStream类合并文件的使用

SequenceInputStream 介绍
SequenceInputStream 类表示其他输入流的逻辑串联,即文件的合并。

它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。

最近公司需要解码一种分包文件,多个文件组合成一个整体,进行解码操作

然后就用到了SequenceInputStream 流

具体代码示例应用如下:

List<InputStream> inputStreams = new ArrayList<>();
String s = null;
Long fileSize = 0L;

for (int i = 0; i < sList.size(); i++) {
    Path filePath = new Path(sList.get(i).toString());
    InputStream is = fileSystem.open(filePath);
    inputStreams.add(is);
    if(ObjectUtils.isEmpty(s)){
        s = sList.get(i).toString();
    }
    // 算出多包文件的总字节数
    fileSize = fileSize + fileSystem.getLength(filePath);

}
if(fileSize <= 0){
    return ;
}
Enumeration<InputStream> inputStreamEnum = Collections.enumeration(inputStreams);
SequenceInputStream sequenceInputStream = new SequenceInputStream(inputStreamEnum);
BufferedInputStream buff = new BufferedInputStream(sequenceInputStream);
MyDataBufferedInputStream dis = new MyDataBufferedInputStream(buff);


原文链接:https://blog.csdn.net/jueblog/article/details/9456691

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值