Foros del Web » Programación para mayores de 30 ;) » Java »

Agregar una cadena un archivo en java

Estas en el tema de Agregar una cadena un archivo en java en el foro de Java en Foros del Web. Buenos dias estoy accesando a un xml via java con RandomAccessFile para agregarle al archivo el BOM(Byte Order Mark) por cuentiones de hacienda bla bla ...
  #1 (permalink)  
Antiguo 12/07/2011, 11:02
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación Agregar una cadena un archivo en java

Buenos dias estoy accesando a un xml via java con RandomAccessFile para agregarle al archivo el BOM(Byte Order Mark) por cuentiones de hacienda bla bla este es mi codigo

public static void main (String[] args) throws IOException {


File f = new File(args[0]);
RandomAccessFile raf = new RandomAccessFile(f, "rw");

try {
// escribe UTF8 BOM mark
raf.seek(0);
final byte[] bom = new byte[] { (byte)0xEF, (byte)0xBB, (byte)0xBF };
raf.write(bom);

Y si agrega los bytes pero el problema es que me sustituye los primeros tres bytes en vez de agregarlos, como puedo hacer para que en ves de substituirlos los agrege al inicio del xml
  #2 (permalink)  
Antiguo 13/07/2011, 03:53
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Agregar una cadena un archivo en java

Sólo se puede añadir al final de un fichero, nunca se puede insertar entre medias (o al principio).

La única solución es escribir el fichero completo otra vez. Puedes empezar un fichero nuevo, escribir tus bytes y luego irle añadiendo los del fichero original. O bien cargarlo completo en memoria, insertar los bytes al principio en el array de bytes o donde lo hayas guardardo y luego escribirlo todo entero otra vez machacando el original.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:40.