Java - Leer archivo binario

 
Vista:
Imágen de perfil de Javier
Val: 115
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Leer archivo binario

Publicado por Javier (54 intervenciones) el 12/02/2017 18:58:00
Hola, estoy estudiando en Java la lectura y escritura de ficheros y haciendo unas pruebas me dí cuenta de lo siguiente. Tengo un fichero binario que contiene un emoticono. Pues bien, creo un programa que lee el fichero binario y a la vez escribe los bytes que va leyendo en otro fichero que creo. Utilizo las clases FileInputStream para leer el fichero y la clase FileOutputStream para escribir los bytes en el nuevo fichero. Bien, cuando ejecuto el programa funciona correctamente y me crea un archivo que contiene el emoticono, todo funciona correctamente.
Pero si utilizo buffers (la clase BufferedInputStream y la clase BufferedOutputstream) me crea el archivo pero no contiene el emoticono, me dice que el archivo está vacío.
Mi pregunta es ¿Po qué sin utilizar bufferes el proceso de lectura y escritura del archivo se realiza correctamente pero si utilizo buffers no? No entiendo qué puede fallar, y me gustaría que si alguno sabe porqué pasa esto me pudiese decir el porqué.
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Leer archivo binario

Publicado por Tom (1831 intervenciones) el 13/02/2017 12:33:42
Porque, seguramente, no usas ni flush() ni close().
Deberías leer algo sobre I/O (en java o cualquier otro lenguaje) si no se te ocurre la diferencia entre la E/S sin o con buffers ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Javier
Val: 115
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Leer archivo binario

Publicado por Javier (54 intervenciones) el 13/02/2017 13:34:19
Muchas gracias Tom. Probé lo que tu has dicho pero no me funcionaba, hasta que me he dado cuenta que tengo que borrar el archivo que había creado de forma incorrecta y volver a ejecutar. Fallo de novato jajaja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar