Como converter um arquivo em um array de bytes (byte[]) em Java?
Olá a todos! Sou novo em Java e me deparei com um problema: preciso ler um arquivo inteiro e obter seu conteúdo como um array de bytes (byte[]). A tarefa específica é carregar uma imagem do disco e enviá-la através de uma requisição HTTP.
Tentei algumas formas, mas todas parecem complicadas ou causam erros. Por exemplo, tentei usar FileInputStream:
File file = new File("image.jpg");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
Mas esse código às vezes não lê o arquivo inteiro, especialmente se ele for grande. Também ouvi falar do Apache Commons IO, mas não quero adicionar bibliotecas externas para uma tarefa tão simples. Digam-me como ler corretamente e de forma confiável um arquivo em um array de bytes.