Ver Mensaje Individual
  #9 (permalink)  
Antiguo 02/06/2007, 03:44
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: Escribir en un fichero array de bytes y recuperarlos

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!