Gerar arquivo em memória e realizar upload

Boa tarde pessoal,

estou tendo dificuldades para converter alguns dados que tenho para um arquivo .xml em memória.

import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;

import br.com.ArquivoRetorno;


public class XmlParser {
	
	public static void converter(ArquivoRetorno arquivo) throws Exception {
		
	    JAXBContext contextObj = JAXBContext.newInstance(ArquivoRetorno.class);
	 
	    Marshaller marshallerObj = contextObj.createMarshaller();
	    marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
	    marshallerObj.marshal(arquivo, new FileOutputStream("C:\\Arquivo.xml"));
	    
	}
}

O trecho de código acima, cria um arquivo xml com o conteúdo do objeto do tipo ArquivoRetorno, no caminho especificado.
O problema é que não devo criar o arquivo em disco, eu deveria criar o arquivo em memória apenas, e realizar a persistência dele na base de dados, pois é um arquivo que é gerado a partir de um processamento do sistema.
(Esse arquivo de retorno, será disponibilizado ao usuário para download após o processamento.)

Existe alguma forma de gerar esse xml em um arquivo na memória, podendo o atributo ser UploadedFile ou InputStream?

Desde já agradeço, abraços.