gpt4 book ai didi

java - 有没有一种简单的方法可以创建由多个附加文件组成的 Java InputStream?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:01:22 25 4
gpt4 key购买 nike

我有一个“处理器”组件,可以处理单个文件、InputStream、Reader 等。

由于各种原因,我最终得到了几个大文件而不是一个大文件。

有没有一种方法可以构造一个输入流(或阅读器):透明地“附加”所有这些文件,以便:1)“处理器”不知道一个文件从哪里开始或另一个文件从哪里结束2) 文件系统没有发生变化(例如,没有实际附加文件)3) 每个文件都按顺序读取,这样我就不用支付在处理器开始读取之前将所有文件加载到内存并附加它们的成本?

我确信可以写这样的东西,但我想知道是否已经存在;我已经有一段时间没有做基于文件的 IO 了。

最佳答案

SequenceInputStream连接多个流。

List<InputStream> opened = new ArrayList<InputStream>(files.size());
for (File f : files)
opened.add(new FileInputStream(f));
InputStream is = new SequenceInputStream(Collections.enumeration(opened));

打开每个文件时的异常处理(未显示)很重要;确保所有文件最终肯定会关闭,即使在创建 SequenceInputStream 之前中止操作也是如此。

关于java - 有没有一种简单的方法可以创建由多个附加文件组成的 Java InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com