Como transformar um byte[] em File? (respondido)

Pessoal, boa tarde.
Alguem sabe me informar como transformar um array de bytes em um objeto File?

O que eu necessito é um objeto File para ser usado apenas no código, não quero escrever ou referenciar nenhum arquivo físico na máquina.

O meu objetivo é o sequinte:

Tenho um arquivo criptografado com formato .txt.
Eu leio esse arquivo, descriptografo e transformo em um array de bytes.

Porém agora quero transforma-lo de array de bytes para File para utilizar no “FileInputStream(xxxArquivoDesejadoxxx)”.
Porém não criar uma referencia fisica para ele em qualquer lugar da máquina da pessoa, mantendo apenas o arquivo criptografado salvo.

Será que deu pra entender :wink:

Abraços!!!

Amigo,

Vc poderia converter o teu array de bytes para um InputStream…
http://download.oracle.com/javase/1.4.2/docs/api/java/io/ByteArrayInputStream.html

Aí depois vc trata normalmente como faria com uma inputStream pra arquivos…

Observe que ela é sub-classe de java.io.InputStream…

[]s

Um File representa justamente um arquivo físico. Um array de bytes[] representa dados já lidos em memória. E o stream é só uma classe que encapsula um conjunto de dados qualquer, em qualquer canal.

Um FileOutputStream é um tipo especial de stream que lê a partir de arquivos físicos.

O stream que representa algo em memória é o ByteArrayInputStream:
http://download.oracle.com/javase/1.4.2/docs/api/java/io/ByteArrayInputStream.html

Se sua classe aceita um InputStream qualquer, use o ByteArray no lugar do File.

Obrigado a todos pela ajuda,
Conforme vocês me informaram…consegui o que queria utilizando o ByteArrayInputStream.

Tambem aproveitei para ler um pouco mais sobre os Streams…

Quem não souber muito sobre IO…segue um resumo em pdf criado por "Miguel Jonathan
" sobre Streams que achei muito bom.

Att,
Diogo Barbosa.

Valeu por compartilhar o pdf .