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();