Título: Modificar archivos txt en j2me Publicado por: dark33 en 22 Octubre 2010, 05:09 am Hola a todos. Estoy haciendo una aplicacion que permite modificar un archivo txt. La idea es que si por ejemplo el archivo txt existe en el celular pueda agregar una nueva linea al final de la ultima masomenos asi:
archivo txt actual: linea1 linea2 linea3 Agrego una nueva linea4 al archivo txt linea1 linea2 linea3 linea4 Eh intentado agregar pero se me sobrescribe la primera linea.Luego intente con \r\n y me sale el simbolo '?' al final de la linea. Una solucion que habia planteado era leer primero todo el archivo txt y luego recuperar todos los datos como string en una variable "datos" de tipo string.Posteriormente sumar el string que quiero agregar como linea osea "datos"+"linea4" y para que se vaya abajo le aumente \r\n ,asi ,"datos"+"\r\n"+"linea4. Me funciono en parte.Pero cada vez que hago una escritura, la linea se le agrega el simbolo '?' al final. El codigo es el siguiente: Código Espero que me puedan ayudar.Desde ya muchas gracias. Título: Re: Modificar archivos txt en j2me Publicado por: [D4N93R] en 22 Octubre 2010, 05:20 am Hola, no conozco mucho de Java, pero te digo lo siguiente:
1) Todo código debe estar dentro de [code=java][/code]. 2) NUNCA anides Try-Catch, con uno solo es suficiente, y en tal caso puedes validar por errores, lo cual es recomendable. 3) Revisa la documentación sobre el PrintStream. 4) En esta parte: Código No lo debes hacer así, puedes usar el mismo vdata. 5) No se porqué estas usando un subproceso. 6) No estás validando Race Conditions y ni todo lo referente a multi-threading. Un saludo. Título: Re: Modificar archivos txt en j2me Publicado por: dark33 en 22 Octubre 2010, 05:41 am Hola D4N93R. Use varios Try-Catch para poder hacer pruebas nómas =). Por otra parte al hilo lo puse porque supuestamente se puede producir un dead lock que hasta ahora no me paso. Teniendo el hilo no me deja usar el vdata directamente salvo que sea un final.
Saludos. Título: Re: Modificar archivos txt en j2me Publicado por: [D4N93R] en 22 Octubre 2010, 05:56 am Si estás haciendo pruebas, instancia la clase y llama a ese método varias veces, y usa alguna forma de identificar cada vuelta para que se te haga más fácil la depuración. Con respecto a escribir al final del archivo, creo que hay una clase que se llama FileWriter, en el constructor hay un parámetro que se llama append, le pass true.
Un saludo! Título: Re: Modificar archivos txt en j2me Publicado por: dark33 en 22 Octubre 2010, 06:03 am Hola de nuevo.Efectivamente si hay una clase FileWriter pero es para la plataforma Java y no esta disponible para J2ME :-[. Asi que no me quedo otra que utilizar la interfaz FileConnection.
Saludos.. Título: Re: Modificar archivos txt en j2me Publicado por: dark33 en 22 Octubre 2010, 08:18 am Hola a todos.Despues de lidiar con esto pude solucionar el problema de que aparezcan el caracter '?' y el otro simbolo parecido a este '□'. Al hacer datos=datos+(char)value se adjuntaba el simbolo '?' al string datos ya que este siempre aparece al final de la ultima linea. Tambien al hacer por ejemplo ps.println(texto) se escribia el simbolo '□'.La linea datos=datos+(char)value; del codigo anterior ya no iria ya que era la que adjuntaba el simbolo '?' y se utiliza el metodo print y no println de la clase PrintStream .
Código . Si bien funciona bien el codigo me gustaria una mejor solucion mas optmizada puesto que esta aplicacion se ejecuta sobre un celular y ademas por cada escritura que se hace se necesita recuperar los datos del txt y concatenarle la nueva linea. Lo mejor seria posicionarse en la ultima linea y hacer un retorno de carro y escribir la nueva linea directamnete. Esto no lo pude conseguir con J2ME. Saludos. |