Java - ficheros

   
Vista:

ficheros

Publicado por Rafa (13 intervenciones) el 08/11/2015 03:04:24
Hola buenas,

Me piden en un ejercicio que cree una clase que se conecte a un fichero. Esta clase debe tener dos métodos, uno que liste los datos del fichero y otro que nos permita incluir un nuevo dato al fichero. Creo que el primero me lo hace bien, pero el segundo, me agrega la linea pero me borra todo el contenido anterior. Como consigo que no me borre todo lo anterior? Os dejo el código para ver si alguien me puede ayudar.

Saludos y gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
 
 
public class ConexionFich {
 
	  static void listar (String prueba) throws FileNotFoundException, IOException{
		String cadena;
		FileReader fr = new FileReader("/Users/usuario/prueba.txt");
		BufferedReader br = new BufferedReader(fr);
		while((cadena = br.readLine())!=null) {
	          System.out.println(cadena);
	      }
	      br.close();
		}
 
	static void anadir (String prueba){
		File f= new File("/Users/usuario/prueba.txt");
		try{
		FileWriter fw= new FileWriter(f);
		BufferedWriter bw = new BufferedWriter(fw);
		PrintWriter wr = new PrintWriter(bw);
		wr.write("Esta es la línea que hemos añadido");
		wr.append(" - y aqui continua");
		wr.close();
		bw.close();
		}catch(IOException e){};
	}
 
 
	public static void main (String [] args) throws IOException{
		listar ("/Users/rafa/prueba.txt");
		anadir ("/Users/rafa/prueba.txt");
 
	}
}
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
Imágen de perfil de Lawliet

ficheros

Publicado por Lawliet (243 intervenciones) el 08/11/2015 06:32:04
Hola...

Cambia la siguiente línea..

1
FileWriter fw= new FileWriter(f);

Por esta...

1
FileWriter fw= new FileWriter(f, true);

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

ficheros

Publicado por Rafa (13 intervenciones) el 08/11/2015 12:47:03
Muchas gracias Lawliet ,

Ahora si que se agrega al final de mi fichero, pero se agrega todo en la misma linea. La idea es que cada vez que se agregue lo agregue en una línea nueva. Tienes alguna idea?

Saludos y gracias de nuevo
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
Imágen de perfil de Lawliet

ficheros

Publicado por Lawliet (243 intervenciones) el 08/11/2015 21:22:56
Hola...

Una de las ventajas de la clase PrintWriter, es que también nos ofrece los métodos tradicionales de mostrar datos en pantalla; es decir, podemos hacer uso de lo siguiente...

1
2
3
PrintWriter pw = new PrintWriter(archivo, true);
pw.println("Hola");
pw.println("mundo");

Esto debería regresarnos el siguiente resultado...

1
2
Hola
mundo


No obstante, podemos hacer que aparezca de manera continua realizando lo siguiente...

1
2
3
PrintWriter pw = new PrintWriter(archivo, true);
pw.print("Hola ");
pw.print("mundo");

Donde el resultado sería lo siguiente...

1
Hola mundo

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
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

ficheros

Publicado por Rafa (13 intervenciones) el 09/11/2015 00:48:52
Ok, muchas gracias de nuevo. Me ha servido de mucho.

Gracias
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