Código:
byte[] copiarFicheroAMemoria(String nombreFichero)
{
byte[] contenidoDelFichero = null;
File theFile = new File(nombreFichero);
FileInputStream theFIS = null;
BufferedInputStream theBIS = null;
byte[] buffer = new byte[8 * 1024];
int leido = 0;
ByteArrayOutputStream theBOS = new ByteArrayOutputStream();
try
{
theFIS = new FileInputStream(theFile);
theBIS = new BufferedInputStream(theFIS);
while ((leido = theBIS.read(buffer)) >= 0)
{
theBOS.write(buffer, 0, leido);
}
// Fichero leido del todo, pasamos el contenido
// del BOS al byte[]
contenidoDelFichero = theBOS.toByteArray();
// Liberamos y cerramos para ser eficientes
theBOS.reset();
// Este close no va dentro de un try/catch por que
// BOS es un Stream especial y close no hace nada
theBOS.close();
}
catch (IOException e1)
{
// Error leyendo el fichero así que no tenemos
// en memoria el fichero.
e1.printStackTrace();
}
finally
{
if (theBIS != null)
{
try
{
theBIS.close();
}
catch (IOException e)
{
// Error cerrando stream del fichero
e.printStackTrace();
}
}
}
return contenidoDelFichero;
}
Algo así, pero deberías jugar más con el tema e investigar y hacer pruebas, ya que la E/S es un tema fundamental. Tienes que ser capaz de montar tu este tipo de cosas a partir de ejemplos sueltos de otras cosas, por que muchas veces no encontraras los ejemplos exactos. En este caso he buscado y no he visto un ejemplo claro, así que por eso lo he puesto yo.
S!