Ler um OutputStream e gravar num FileOutputStream

Olá,

Eu tenho um arquivo no formato OutputStream,
e eu preciso gravar esse OutputStream em disco…

logo em crio um:

FileOutputStream out = new FileOutputStream(new File(diretorioRelatorio + File.separatorChar + nomeRelatorio));

como eu faço para escrever o OutputStream no FileOutputStream, ou gravar diretamenta o
OutputStream em disco.

Obrigado

Olhando a documentação das duas classes, FileOutputStream estende OutputStream.
Logo, isso aqui:

OutputStream os = new FileOutputStream(...);

Seria válido, bem como o downcasting:

FileOutputStream fos = (FileOutputStream) os;

Nao rolou fazer casting, da erro.

Qual erro? Como está teu código?

java.lang.ClassCastException: org.apache.catalina.connector.CoyoteOutputStream cannot be cast to java.io.FileOutputStream

Não, não.
Veja que você está utilizando uma implementação diferente da que eu sugeri, por isso ocorreu a exceção no casting.
Se o que você tem é um objeto de CoyoteOutputStream, você nunca vai conseguir convertê-lo para um FileOutputStream.
Sem olhar o código, fica complicado sugerir algo e estamos suscetíveis a cometer erros como cometi agora.

public static void criarThreadGravarArquivoEmDisco(final TipoMime tipoMime, final OutputStream os) {
	if (tipoConsulta != null && usuarioLogado != null && os != null) {
		new Thread(new Runnable() {
			private FileOutputStream fos;

			@Override
			public void run() {
				String diretorioRelatorio = ListarArquivoArmazenadoServlet.getDiretorioRelatorio(tipoConsulta, usuarioLogado.getId());
				String nomeRelatorio = String.format("%s.%s",new SimpleDateFormat("dd_MM_yyyy_HH-mm-ss").format(new Date()),tipoMime.getExtensao());

				try {
					fos = new FileOutputStream(new File(diretorioRelatorio + File.separatorChar + nomeRelatorio));
					fos = (FileOutputStream) os;
					fos.flush();
					fos.close();
				} catch (IOException  e) {
					e.printStackTrace();
				}
			}
		}).start();
	}
}

Eu quero salvar o OutputStream em disco…