Arquivos Mensais: maio \19\UTC 2015

Converter um File para array de byte e, um array de byte para File

Para converter um File para array de bytes utilizamos a classe ByteArrayOutputStream. Esta classe implementa um fluxo de saída em que os dados são gravados em um array de byte. O buffer aumenta conforme os dados vão sendo escritos. Os dados podem ser recuperados usando os métodos toByteArray() e toString().

File file = new File("java.pdf");

FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
   for (int readNum; (readNum = fis.read(buf)) != -1;) {
      bos.write(buf, 0, readNum); //no doubt here is 0
   }
} catch (IOException ex) {
   Logger.getLogger(genJpeg.class.getName()).
      log(Level.SEVERE, null, ex);
}
byte[] bytes = bos.toByteArray();

Para converter um array de byte para um File utilizamos a classe FileOutputStream.

File someFile = new File("java2.pdf");
FileOutputStream fos = new FileOutputStream(someFile);
fos.write(bytes);
fos.flush();
fos.close();

Fonte: http://www.programcreek.com/2009/02/java-convert-a-file-to-byte-array-then-convert-byte-array-to-a-file/