Java - DUDA - Manipulacion archivos de texto

 
Vista:
sin imagen de perfil

DUDA - Manipulacion archivos de texto

Publicado por pepitogrillo (6 intervenciones) el 14/11/2014 18:01:46
1
2
3
4
5
6
public void escribir(String nombreArchivo){
        File f=new File(nombreArchivo);
        try{
            FileWriter fw=new FileWriter(f);
            BufferedWriter bw=new BufferedWriter(fw);
            PrintWriter pw=new PrintWriter(bw);
Esta es la parte que NO ME FUNCIONA, sabemos que cada vez que escribimos en el archivo se borra lo anterior, pues bien lo que yo intento hacer es primero leer el contenido del archivo, guardarlo en una variable, y luego escribir de nuevo ese texto leido mas lo que yo quiera, de esta forma se quedaria el archivo tal cual mas lo que yo quiera agregar.
Esta parte de codigo es la que uso para leer el archivo, y en vez de usar el ".write" lo imprimo en pantalla y si me funciona. Porque no funciona de esta otra forma??
1
2
3
4
5
6
7
8
9
10
11
12
13
14
try{
                FileReader r=new FileReader(nombreArchivo);
                BufferedReader bufferTextoExistente=new BufferedReader(r);
                String textoExistente="";
                while(textoExistente!=null){
                    textoExistente=bufferTextoExistente.readLine();
                    if(textoExistente==null){
                        break;
                    }
                    pw.write(textoExistente);
                }
            }catch(Exception e){
                System.out.println(e.getMessage());
            }
Esta parte me funciona a la perfeccion.
La unica duda que tengo es, como podria añadir un salto de texto entrado por el teclado?? Porque si pongo "\n" entrado por teclado me lo imprime talcual, como si fuera una parte mas del texto; pero si lo pongo escrito en el codigo como en el ".append" (que digo ola y adios) si me hace el salto de linea.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
String nuevoTexto="";
            InputStreamReader in=new InputStreamReader(System.in);
            BufferedReader bufferNuevoTexto=new BufferedReader(in);
            try{
                nuevoTexto=bufferNuevoTexto.readLine();
            }catch(IOException e){}
            pw.write(nuevoTexto);
            pw.append("\nola\nadios");
            pw.close();
            bw.close();
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }

Gracias de antemano por prestar atencion a mi problema que parece mucho por la cantidad de texto que hay, pero seguro que la respuesta es bien sencilla una vez sabes como hacerlo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

DUDA - Manipulacion archivos de texto

Publicado por juanki (131 intervenciones) el 15/11/2014 13:08:16
Hola

1
...sabemos que cada vez que escribimos en el archivo se borra lo anterior...

No necesariamente, puedes abrir un archivo para añadir al final lo que quieras. Debes poner un flag a true como segundo parámetro del constructor de FileWriter.

Aquí te lo explican mucho mejor que yo :)

http://chuwiki.chuidiang.org/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar