Concatenar Streams

Pessoal,

Preciso concatenar uma string com dois campos binários que trago do banco.
Segue código para verificarem o meu desejo.

package br.jus.tjba;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;

import br.com.itx.database.impl.ConnectionSql;
import br.com.itx.exception.UserException;
import br.com.itx.integration.AbstractConnector;
import br.com.itx.integration.DatabaseAliases;
import br.com.itx.integration.DatabaseHandler;
import br.com.itx.integration.InterfaceHeaders;
import br.com.itx.util.WIMap;

public class TransformarHtml2Pdf extends AbstractConnector {
	
	
	byte[] bytes = null;
	
	Connection con;
	ConnectionSql conSql;
	DatabaseHandler dh;
	InputStream relfun, prtdis, conteudo;
	PreparedStatement pstm;
	ResultSet rset;
	String query, url, cabecalho;
	
	
	
	public void execute(WIMap map, DatabaseAliases dba, InterfaceHeaders ih)
			throws UserException {

		try {
			// Obtém a conexão do WI
			dh = dba.get("atosjud");
            conSql = (ConnectionSql) dh.getDatabaseConnection();
            con = conSql.getConnection();
            
            //Monta o cabeçalho
            cabecalho = map.get("tmp.cabecalho");
            
            //Retorna o conteúdo HTML
	        query = "SELECT RELATORIO_FUNDAMENTACAO, PARTE_DISPOSITIVA FROM AJ_ATO WHERE ID_ATO = ?";
	        pstm = con.prepareStatement(query);
	        pstm.setInt(1, Integer.parseInt(map.get("tmp.id_ato"))); //Pega o id_documento como parâmetro
	        rset = pstm.executeQuery();
	        rset.next();
	        relfun = rset.getBinaryStream(1); // Código HTML armazenado na coluna RELATORIO_FUNDAMENTACAO.
	        prtdis = rset.getBinaryStream(2); // Código HTML armazenado na coluna PARTE_DISPOSITIVA.
	        
	        //Cria o conteúdo único para o pdf
	        conteudo = new ByteArrayInputStream(cabecalho.getBytes());  
	        
	        AQUI QUERO JUNTO cabecalho, relfun, prtdis e mais algum conteúdo (texto) que eu quero inserir.
	        
	        
	        //Chama o serviço para transformar o conteúdo em pdf
	        url = map.get("pvt.url");
	        HttpClient httpClient = new HttpClient();
	        PostMethod postMethod = new PostMethod(url);
	        postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(1, false));
	        postMethod.setRequestHeader("Content-Type", "text/html");
	        postMethod.setRequestHeader("Accept", "application/pdf");
	        postMethod.setRequestBody(html);

	        int statusCode = httpClient.executeMethod(postMethod);
	         
	        //Grava o pdf no banco.
	        if(statusCode == 200){ //Código 200 é código que a conversão para PDF foi sucesso.
	         bytes = postMethod.getResponseBody();
	         query = "UPDATE DOCUMENTO SET BINARIO = ? WHERE ID_DOCUMENTO = ?";
	         pstm = con.prepareStatement(query);
	         pstm.setBytes(1, bytes);
	         pstm.setInt(2, Integer.parseInt(map.get("tmp.id_documento"))); //Pega o id_documento como parâmetro
	         pstm.executeUpdate();
	        } else {
	         map.put("tmp.resp", "Código = " + statusCode + " - Erro na conversão.");
	        }
	        
            // Fecha as conexões
	        postMethod.releaseConnection();
	        
	        html.close();
	        
	        rset.close();
	        pstm.close();
	        con.close();
			conSql.close();
			dh.close();
			
		} catch (Exception e){
			map.put("tmp.resp", "Erro na conversão.\r\n" + e.getStackTrace());
		}
		
	}
}

A classe String tem um construtor que aceita um array de bytes.