Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - dark33

#11
Java / Modificar archivos txt en j2me
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 (java) [Seleccionar]
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
public class writeMemory{
   private String url;
   private FileConnection fc;
   private OutputStream os;
   private String data;
   private PrintStream ps;
   public writeMemory(String vurl){
       url=vurl;
   }
   
   public void write(String vdata){
       data=vdata;
       new Thread(new Runnable() {
           public void run() {
               try {
                   fc = (FileConnection) Connector.open(url);
                   if (!fc.exists()) {
                      fc.create();  
                   }
                   os = fc.openOutputStream();
                   String datos="";
                   InputStream fis = fc.openInputStream();
                   int value=0;
                   while((value=fis.read())!=-1){
                       System.out.print((char)value);
                       datos=datos+(char)value;
                    }
                   System.out.println((char)value);
                   datos=datos+(char)value;
                   fis.close();
                   ps = new PrintStream(os);
                   ps.print(datos+"\r\n"+data);
                   ps.flush();
                   ps.close();    
                   fc.close();    
               } catch (IOException ex) {
                   ex.printStackTrace();
               }
           }
       }).start();
   }
}

Espero que me puedan ayudar.Desde ya muchas gracias.