Java - Ayuda con ficheros

 
Vista:
Imágen de perfil de esi92

Ayuda con ficheros

Publicado por esi92 (37 intervenciones) el 04/12/2015 09:53:50
Buenas!!

Estoy haciendo una app con Android Studio tengo que recoger unos datos en un fichero y luego mostrarlos. El problema lo tengo al mostrarlo que solo me muestra el ultimo "Vendedor3: 0 euros".

Lo que guardo:
*******************************************************
1
2
3
4
5
6
7
8
// Almacenar el mensaje a mostrar de todas las ventas de los vendedores
String mensaje = "";
for (int i = 0; i < total_ventas.length; i++) {
	mensaje += vendedores[i] + ": " + total_ventas[i] + " euros\n";
}
 
// reflejar los cambios de las ventas en la etiqueta resultado_ventas
resultado_ventas.setText(mensaje);
*******************************************************
1
2
3
4
5
6
7
8
9
public void onClick(View v) {
	try{
		OutputStreamWriter escritor = new OutputStreamWriter(openFileOutput("Ventas.dat", Context.MODE_PRIVATE));
		// Se escribe el contenido del TextView resultado_ventas en el fichero
		escritor.write(resultado_ventas.getText().toString());
		escritor.close();
	}catch (Exception ex) {
		Log.e("Ficheros", "Error al escribir fichero a memoria interna");
	}
*******************************************************
Para obtenerlo:
*******************************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
try{
	//Crear un objeto BufferedReader al que se le pasa un objeto FileReader con el nombre del fichero
	BufferedReader br = new BufferedReader(new InputStreamReader(openFileInput("Ventas.dat")));
	//Leer la primera línea, guardando en un String
	String texto = br.readLine();
	while(texto != null){
		// Hacer lo que sea con la línea leída
		resultado_ventas.setText(texto);
		// Leer la siguiente línea
		texto = br.readLine();
	}
	br.close();
	Toast.makeText(getApplicationContext(),"Fichero ventas leido satisfactoriamente", Toast.LENGTH_SHORT).show();
}catch (Exception ex){
	Log.e("Ficheros", "Error al leer fichero desde memoria interna");
}
****************************************************************
El fichero que crea se lo proporciono...
Bueno pues al ejecutarlo el resultado que me da es la tercera linea osea "Vendedor3: 0 euros" y deberia de sacarme:
Vendedor1: 0 euros
Vendedor2: 0 euros
Vendedor3: 0 euros

Que es lo que se guarda en el fichero...

Un saludo!
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

Ayuda con ficheros

Publicado por Hector (27 intervenciones) el 04/12/2015 16:32:48
1
resultado_ventas.setText(texto);

Esa linea de código sobrescribe el mensaje, es decir escribe Vendedor1 y luego lo borra para reemplazarlo por vendedor2 y asi va.

Tienes que guardar el contenido en un solo string, y luego es que haces el set
1
2
3
4
5
6
7
8
9
10
11
12
try{
//Crear un objeto BufferedReader al que se le pasa un objeto FileReader con el nombre del fichero
BufferedReader br = new BufferedReader(new InputStreamReader(openFileInput("Ventas.dat")));
//Leer la primera línea, guardando en un String
String texto = br.readLine();
while(texto != null){
// Leer la siguiente línea
texto += "\n" + br.readLine();
}
// Hacer lo que sea con la línea leída
resultado_ventas.setText(texto);
br.close();

o

1
2
3
4
5
6
7
8
9
10
11
12
try{
//Crear un objeto BufferedReader al que se le pasa un objeto FileReader con el nombre del fichero
BufferedReader br = new BufferedReader(new InputStreamReader(openFileInput("Ventas.dat")));
//Leer la primera línea, guardando en un String
String texto = br.readLine();
while(texto != null){
// Hacer lo que sea con la línea leída
resultado_ventas.setText(resultado_ventas.getText() + texto + "\n");
// Leer la siguiente línea
texto = br.readLine();
}
br.close();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de esi92

Ayuda con ficheros

Publicado por esi92 (37 intervenciones) el 04/12/2015 17:12:59
Muchas gracias me funcio :)
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