Interpretação de request no formato PDF

Olá pessoal!

Minha aplicação precisa acessar um outro sistema através de uma URL que retorna pra mim o “content” no formato PDF (se acesso pelo browser, ele me pergunta se eu desejo salvar o PDF em disco, garantindo que o lado de lá está em perfeito funcionamento).

Acontece que recebo e trato os dados da seguinte maneira:

String data = "cod=1";

URL url = new URL("http://...");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(data);
writer.flush();

InputStream inputStream = conn.getInputStream();

byte[] b = new byte[inputStream.available()];
inputStream.read(b);

OutputStream outputStream = new FileOutputStream("D://Teste.pdf");
outputStream.write(arquivo.getConteudo());
outputStream.close();

A requisição é feita com sucesso; a resposta vem no formato PDF (um System.out.println garantiu os dados vindos como um arquivo PDF) mas o arquivo gerado no caminho indicado não consegue ser aberto pelo AdobeReader, por exemplo, pois ele diz que o mesmo está corrompido.

Quando acesso pelo browser o arquivo PDF abre normalmente.

Alguém faz idéia do que falta no código acima para que isso funcione?

Mt obrigado!!