¿Cómo convertir un archivo a un array de bytes (byte[]) en Java?
¡Hola a todos! Soy nuevo en Java y me encontré con un problema: necesito leer un archivo completo y obtener su contenido como un array de bytes (byte[]). La tarea específica es cargar una imagen desde el disco y enviarla a través de una solicitud HTTP.
He probado varios métodos, pero todos parecen engorrosos o causan errores. Por ejemplo, intenté 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();
Pero este código a veces no lee todo el archivo, especialmente si es grande. También he oído hablar de Apache Commons IO, pero no quiero agregar bibliotecas externas para una tarea tan simple. ¿Podrían indicarme cómo leer correctamente y de manera confiable un archivo en un array de bytes usando Java puro? Es importante que la solución funcione con cualquier tipo de archivo (binario, texto) y no se cuelgue con archivos grandes. ¡Gracias de antemano!
<<