Galera, como é que faço para obter um InputStream a partir de um array de bytes?
Minha situação é a seguinte: preciso gravar arquivos PDF no banco de dados, e vou apresentá-los utilizando o viewer da adobe.
A entrada de dados para o viewer é através de um InputStream.
Colocar um arquivo no banco é beleza, e quando obtenho o conteúdo do banco, posso obter o InputStream direto, a partir do método getBinaryStream() do ResultSet. Porém, em minha classe, quero que o atributo seja um array de bytes, e quero transformá-lo em um InputStream somente na hora de apresentar o conteúdo.
[quote=thingol]Cuidado com arrays de bytes - já pensou qual é o tamanho máximo de um PDF?
Se puder, evite ficar com um PDF inteirinho dentro da memória. [/quote]
O que me aconselharia thingol? Trabalhar com o InputStream direto?
Uma vez, trabalhando com imagens, tive problemas ao usar o InputStream. Eu tinha em meu objeto um atributo do tipo InputStream, e depois que eu criava um ImageIcom com esse InputStream, eu não conseguia criar outro.
Resolvi então trabalhar com arrays de bytes.
Pensei em fazer o mesmo com os PDF’s (se bem que as imagens que tenho no banco são bem menores).
Os arquivos PDF’s não devem passar de 300 KB.
Olá amigo tem como vc disponibilizar os fontes do seu projeto, estou querendo fazer o mesmo aqui e estou com dificuldade da implementação/transformação do byte[] para InputStream…