Converter arquivo em byte[] [Concluido]

4 respostas
guisantogui

public byte[] converteFileToByteArray() throws FileNotFoundException, IOException{ File f = new File(arquivo); FileInputStream fs = new FileInputStream(f); byte[] byt = new byte[(int)f.length()]; for(int i = 0;i < f.length();i++){ byt[i] = (byte) fs.read(); } return byt; }

Pessoal fiz o seguinte código acima, mas como procurei na internet sobre antes, vi que muitas implementações usavam a classe "ByteArrayInputStream" já em outros exemplos faziam algo parecido com o que eu fiz acima, quero saber se é muita POG isso ai ou é assim mesmo que implementa!

Obrigado.

4 Respostas

guisantogui

Se puderem responder ja respondam as duas dúvidas?

public void converteByteArrayToFile(byte[] bytes) throws FileNotFoundException, IOException{ FileOutputStream fos = new FileOutputStream(new File("Definir pasta destino")); fos.write(bytes); }

Neste outro código eu deveria receber um array de bytes e escrever um arquivo em um diretório, ficaria bom fazer assim?
Desculpe a paranóia, mas estou fazendo cadeira de otimização de algoritmos então eu tento deixar tudo o mais redondo possível! :wink:

Carol_M_de_Paula

Ola,

Se voce utilizar o ByteArrayInputStream, voce tera a vantagem de usar um buffer. Se o arquivo for pequeno, a falta do buffer nao faz tanta diferenca. Se o arquivo for grande e voce quiser otimizar o seu algoritmo, aconselho o uso do ByteArrayInputStream.

Carol_M_de_Paula

Da mesma forma que o anterior, se a quantidade de bytes for grande, o uso da classe ByteArrayOutputStream eh mais aconselhavel.

Utilize o metodo ByteArrayOutputStream.writeTo(OutputStream out) onde o parametro OutputStream eh do tipo FileOutputStream.

guisantogui

Obrigado, se eu precisar de mais performance no meu algoritmo vou testar com esta classe =D

Criado 1 de junho de 2011
Ultima resposta 2 de jun. de 2011
Respostas 4
Participantes 2