Buffer

1 resposta
lcsoftware
ServletOutputStream out = null;
out = response.getOutputStream();
response.setContentType("multimedia/stream");
	
BufferedInputStream bis = new BufferedInputStream(new FileInputStream( nameFile2 ) );
byte[] buffer = new byte[10000000];

for (int got = 0; (got = bis.read(buffer, 0, buffer.length)) &gt 0;) {
       out.write(buffer, 0, got);
	out.flush();
}

bis.close();

Existe alguma diferença em colocar out.flush(); no fim ou dentro do loop?

outra pergunta, a diferença entre response.setContentType("multimedia/stream"); para response.setContentType("multimedia/avi");

1 Resposta

davidbuzatto

Esse flush dentro do loop é para descarregar o buffer em toda iteração, sendo assim vc consegue o comportamento de fluxo (multimedia/stream). Se você usar o multimedia/avi vc não precisaria dar um flush a cada iteração. No fim vc daria o flush só quando todo o arquivo estivesse lido. Se você quiser usar o flush só quando for fchar o stream não há necessidade, pois antes de fechar já é dado um flush (dá uma lida na documentação que no método close fala isso).

Até mais!

Criado 27 de julho de 2007
Ultima resposta 27 de jul. de 2007
Respostas 1
Participantes 2