Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/06/2013, 08:08
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 1 mes
Puntos: 83
Respuesta: Ficheros binarios

"...me piden escribir en el fichero de salida en bloques de 512 bytes..."

Esto puede tener varias interpretaciones: bloques de texto char[512] o bloques de enteros int[128].

El archivo original tiene caracteres numericos? Es decir un byte (p.ej.) con el caracter '2', o dos bytes con los caracteres '98', esto seria un archivo con caracteres numericos (estando separados por espacios, saltos de linea o lo que quiereas). El otro caso es que el archivo contenga enteros como tales, es decir 4 bytes para cada dato equivalente a numero entero.

Si estas en el primer caso puedes guardar un buffer de texto de 512, guardar el entero como lista de caracteres numericos dentro del buffer y escribir los 512 bytes de bufer en el archivo resultante aun cuando no todos los bytes del bufer esten usados por las lista de caracteres numricos; dicho de otra forma:

Código:
//lees '789'
buffer[0] = '7';
buffer[1] = '8';
buffer[2] = '9';
buffer[3] = 0;
...
buffer[511] = 0;

//escribes el buffer de 512
fo.write(buffer, 512);
Si estas en el segundo caso obviamente la lectura que estas usando fallará.

Saludos
vosk