当前位置: 首页 > 面试题库 >

如何将多个不同的InputStream链接到一个InputStream

贾飞鸿
2023-03-14
问题内容

我想知道是否有任何意识形态的方法将多个InputStream链接到Java(或Scala)的一个连续InputStream中。

我需要的是解析从FTP服务器通过网络加载的平面文件。我要做的是获取文件[1..N],打开流,然后将它们组合为一个流。因此,当file1结束时,我想从file2开始读取,依此类推,直到到达fileN的末尾。

我需要按特定顺序读取这些文件,数据来自遗留系统,该系统会成批地生成文件,因此其中一个数据取决于另一个文件中的数据,但是我想将它们作为一个连续流来处理,以简化我的域逻辑接口

我四处搜索并找到PipedInputStream,但我对此并不满意。一个例子会有所帮助。


问题答案:

就在JDK中!引用JavaDocSequenceInputStream

A
SequenceInputStream表示其他输入流的逻辑串联。它从输入流的有序集合开始,从第一个开始读取,直到到达文件末尾,然后从第二个开始读取,依此类推,直到在最后一个包含的输入流中到达文件末尾。

您想连接任意数量的,InputStreamSequenceInputStream只接受两个。但是由于SequenceInputStream也是,InputStream您可以递归地应用它(嵌套它们):

new SequenceInputStream(
    new SequenceInputStream(
        new SequenceInputStream(file1, file2),
        file3
    ),
    file4
);

…你明白了。



 类似资料:
  • 谁能帮助我如何创建一个新的代理人,并将其链接到旧的,以治愈人民? 多谢!

  • 问题内容: 如果我有:和 如果调用,我是否可以通过这种方式将linkedlist2附加到linkedlist1的末尾: 它变为并 变为? 那可能吗 ?还是我需要其他结构? 以下代码不起作用: 输出: 问题答案: Java提供的标准LinkedList类缺少此功能。 正如Donal Boyle所发布的那样,您可以将一个列表的内容添加到另一个列表中,但这并不能像您所描述的那样保持链接。

  • 我是阿帕奇Storm的新手。 请救命!! 我的拓扑: TopologyBuilder builder=new TopologyBuilder(); 这里,我试图从事件流中获取长度为3的窗口中的第一个和最后一个事件。但是我得到的第一个和最后一个事件是一样的,因为KafkaSpout一次只发送一个元组。

  • 我想知道如何链接到同一liferay网站中的另一个页面。 显然,我可以在我的portlet视图中硬编码url,但是我担心必须更新所有的portlet,以防友好的url在未来发生变化。 我知道我试图链接到的页面的名称,但是如果页面名称也改变了呢? 我发现了无数具有返回友好URL的方法的类,例如,,甚至,但它们都需要我不确定如何获取的参数。 是否有一个标准的方式获得友好的网址?

  • 我有两个这样的等级: 和 我想使用hibernate持久化这两个类。字段messagesOfTypeA、messagesOfTypeB和messagesOfTypeC根据消息中的类型字段对消息对象进行分组。 如何使用XML hibernate映射映射MyClass和Message之间的一对多关系?(我正在使用Hibernate 3.6)

  • 我正在为未来的公共API编写一个招摇过市的规范,它需要非常详细和干净的文档。是否有方法在swagger中的其他位置引用/链接/指向另一个endpoint。yml文件? 例如,这是我正在努力实现的目标: 我发现没有帮助,因为它只是用引用的内容替换自己。 斯威格能做这种事吗?