Como visualizar um InputStream usando Runtime.getRuntime()?

3 respostas
Raarm

Eai galera…alguem sabe como visualizo isto?

Eu preciso visualizar um arquivo de um servidor FTP…estou pegando o arquivo assim:

//transformo o documento em um Stream InputStream is = new BufferedInputStream(ftp.retrieveFileStream(arquivo));

Preciso abrir este arquivo no acrobat…achei algo como

run = Runtime.getRuntime(); File arquivo = new File("c:/AlfrescoCommunity2.1.pdf"); Process proc = run.exec("cmd.exe /C"+ arquivo.getAbsolutePath());

testei e funcionou…mas setando um arquivo e este arquivo estando localmente. No meu caso eu preciso transformar este InputStream em um File…para poder usar o RunTime.getRuntime().

Alguem sabe o q eu devo fazer???

3 Respostas

Paulo_Silveira

pegue esse InputStream e crie um BufferedInputStream. Fique lendo desse stream e gravando num FileOutputStream, decorado por um BufferedOutputStream

algo do tipo:

InputStream is = // pega o IS que voce quer
BufferedInputStream bis = new BufferedInputStream(is);

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("x.pdf"));
byte[] bloco = new byte[2048];

int lidos = bis.read(bloco);
while(lidos != 0) {
  bos.write(bloco, 0, lidos);
  lidos = bis.read(bloco);
}

bis.close();
bos.close();

(digitei da cabeca, pode ter erros). da para fazer o codigo menor tambem, encaixando do while e digitando algumas coisas na mesma linha.

Se voce nao conhece muito da api de IO, da uma olhada no capitulo de IO da apostila da caelum que ta BEM legal:

E hoje em dia tem viewer de PDF puramente em java:
https://pdf-renderer.dev.java.net/

Ai voce nem precisava disso, a api desse renderer deve receber InputStream como argumento…

Raarm

Vlw Paulo…cara depois de transformar em BufferedOutputStream…como uso o Runtime.getRuntime()???

Eu usei um viewer da adobe…achei uma merda pq ele embaralha todo os textos do pdf…agora este link que vc ne passou parece ser mto bom…vc saberia como eu consigo estas classes

com.sun.pdfview.* e java.nio.channels.* eu nao achei estes pacotes?

Paulo_Silveira

com.sun.pdfview.* voce precisa baixar o projeto e por no seu path

java.nio.channels.* precisa de java 1.4 ou superior.

da pra usar o Runtime como vc falou… ai é so passar o x.pdf que agora vai existir. eu pessoalmente desaconselho o uso do Runtime exec

Criado 24 de março de 2008
Ultima resposta 24 de mar. de 2008
Respostas 3
Participantes 2