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!
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!
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