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

Como reemplazar texto de un archivo de texto??

Estas en el tema de Como reemplazar texto de un archivo de texto?? en el foro de Java en Foros del Web. Hola Mi problema es el siguiente: Estoy programando un pequeño juego de rompecabezas, tengo un archivo de texto llamado archivo.txt en el cual estoy guardando ...
  #1 (permalink)  
Antiguo 20/04/2010, 20:46
Avatar de darkangel_java  
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Sonrisa Como reemplazar texto de un archivo de texto??

Hola

Mi problema es el siguiente:

Estoy programando un pequeño juego de rompecabezas, tengo un archivo de texto llamado archivo.txt en el cual estoy guardando los registros de tiempo que tarda en armarlo y el nombre del jugador, hasta aquí todo bien, puedo leer el contenido del archivo pero necesito que si en el archivo ya existe un registro con el nombre del jugador del que se pretende guardar un nuevo registro y que si el tiempo que ya tiene registrado es mayor al actual, me reemplace ese registro por el actual en el archivo de texto, a manera de un Top10.

Ejemplo:

tengo registros de tiempo y nombre asi:
[0:5:45][........][jose]
[0:6:45][........][angel]
[0:7:45][........][laura]

al iniciar un nuevo juego obtengo lo siguiente
[0:6:19][........][angel]

y me gustaria que en el archivo de texto al guardar nuevamente me quede asi:
[0:5:45][........][jose]
[0:6:19][........][angel]
[0:7:45][........][laura]


Tengo el siguiente código:

BufferedReader io = new BufferedReader(new FileReader(archivo));
String line = "";
String [] lineas= null;
while ((line = io.readLine()) != null) {

token = new StringTokenizer(line, "[]");

while (token.hasMoreTokens()) {
renglon[0] = token.nextToken();
renglon[1] = token.nextToken();
renglon[2] = token.nextToken();

StringTokenizer token2 = new StringTokenizer(renglon[0], ":");

while (token2.hasMoreTokens()) {
String hrs = token2.nextToken();
String min = token2.nextToken();
String seg = token2.nextToken();

Ihrs = Integer.parseInt(hrs);
Imin = Integer.parseInt(min);
Iseg = Integer.parseInt(seg);


}
}
}

guardar = new BufferedWriter(new FileWriter("directorio/archivo.txt", true));
guardar.write("[" + jlblTiempo.getText() + "]" + "[ ........ ]" + "[" + nombre + "]");
guardar.newLine();


******


Alguna idea de como resolverlo??


De antemano gracias por su ayuda
  #2 (permalink)  
Antiguo 21/04/2010, 12:14
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Como reemplazar texto de un archivo de texto??

Hola:

Antes de nada, debes tener claro que sólo podrás reemplazar cosas en el archivo de texto si ocupan exactamente lo mismo que las antiguas. Dentro de un fichero no se pueden borrar trozos o insertar, sólo machacar lo que ya hay, caracter a caracter

La clase java que te permite abrir un fichero para lectura y escritura a la vez y además moverte por él adelante y atrás es RandomAccessFile. Tendrás que buscar la posición en bytes de lo que quieres reemplazar, situarte ahí y escribir.

Una solución alternativa si el fichero no es muy grande, es cargarlo en memoria, cambiar los datos y reescribirlo entero.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
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 08:22.