2009-03-18 7 views
5

¿Cuál es la mejor manera de cambiar un solo byte en un archivo usando Java? Lo he implementado de varias maneras. Uno usa toda la manipulación de matriz de bytes, pero esto es muy sensible a la cantidad de memoria disponible y no escala más allá de 50 MB (es decir, no puedo asignar 100MB de bytes [] sin obtener errores OutOfMemory). También lo implementé de otra manera que funciona y escala, pero se siente bastante hacky.¿Cómo cambiarías un solo byte en un archivo?

Si eres un gurú de Java y tienes que lidiar con archivos muy grandes (200-500MB), ¿cómo te acercarías a esto?

Gracias!

+0

¿Está buscando dicho byte, o ya conoce su posición? –

Respuesta

13

Usaría RandomAccessFile, buscaría la posición que quería cambiar y escribiría el cambio.

6

Si todo lo que quería hacer era cambiar un solo byte, no me molestaría en leer todo el archivo en la memoria. Usaría un RandomAccessFile, seek en el byte en cuestión, write y cierro el archivo.

Cuestiones relacionadas