java - 需要合并两个 ByteArrayOutputStream 以生成单个 ByteArrayOutputStream

标签 java bytearrayoutputstream

我需要合并两个ByteArrayOutputStream并传递给xdo api TemplateHelper.processTemplate以生成报告

编写以下代码是为了在两个 ByteArrayOutputStreams 中获取 xml 输出 -

ByteArrayOutputStream hdrclob = new ByteArrayOutputStream (1024);

hdrclob = (ByteArrayOutputStream)this.getDataTemplateXML(transaction,"ASO",
                      "ASOPD",parameters1,null);

ByteArrayOutputStream conclob = new ByteArrayOutputStream (1024);

ContractTermsXMLGenerator.writeXML(PrintQuote,(OutputStream) conclob, true,
            documentType, new Number(params[8]), new Number("0"));

现在将 hdrclob/conclob 分别传递给 xdo api,然后能够在单独的报告上看到相应的 xml 输出,如下所示 -

TemplateHelper.processTemplate(((OADBTransactionImpl)transaction).getAppsContext(),
        "ASO", "SampleRTF", language, country,
         new ByteArrayInputStream(hdrclob.toByteArray()),
           TemplateHelper.OUTPUT_TYPE_PDF, new Properties(), pdf);    

或者

TemplateHelper.processTemplate(((OADBTransactionImpl)transaction).getAppsContext(),
         "ASO", "SampleRTF", language, country, 
         new ByteArrayInputStream(conclob.toByteArray()),
           TemplateHelper.OUTPUT_TYPE_PDF, new Properties(), pdf);  

但需要合并 hdrclob 和 conclob 以生成单个 ByteArrayOutputStream 并传递给 xdo api 以获取包含两个 xml 输出的单个报告

请告诉如何合并两个ByteArrayOutputStream

感谢您对此的回复

最佳答案

假设这是 Java,只需将一个流写入另一个流的末尾即可。

hdrclob.write(conclob.toByteArray());
// hdrclob.toByteArray() now returns the concatenation of the two streams

如果您只想将它​​们作为单个InputStream顺序读取,您可以构造一个 SequenceInputStream将任意两个输入流连接在一起。

InputStream everything = new SequenceInputStream(
    new ByteArrayInputStream(hdrclob.toByteArray()),
    new ByteArrayInputStream(conclob.toByteArray()));
// now read everything

关于java - 需要合并两个 ByteArrayOutputStream 以生成单个 ByteArrayOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17564021/

相关文章:

java - 从 LinkedList 中删除重复项,其中嵌套的集合项可以按任意顺序排列

java - firestore 和 wait 中的链式查询如何检索数据

java - 如何在 java 中将 xml 分块为多个部分?

java - 使用 Java native 代码或 C++(QT、WxWidgets 等)进行独立于平台的编程

java - 如何将 Java OpenJDK 1.6.0_36 安装到 CentOS 7.2

java - 不播放 mp3

java - 将 ByteArrayOutputStream 转换为 int 值

java - Java中的音频输入捕获——字节数组

java 将 GZIPOutputStream 和 ByteArrayOutputStream 包装在一起 - 我做错了什么?