Java - Reemplazar fichero y arrays

 
Vista:
sin imagen de perfil
Val: 52
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Reemplazar fichero y arrays

Publicado por Joker (19 intervenciones) el 23/01/2020 18:33:22
Hola!

Necesitaría vuestra ayuda ya que no se como hacer para reemplazar un fichero y pasar una operación para que el resultado se vaya metiendo en un array.

Los resultados que me gustaría meter en el array es la parte que está dentro del do while.

Gracias!

El codigo que tengo es el siguiente:

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
44
45
46
public class PRUEBA {
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);
 
		int i=0, ex=0;
		double resCas=1, div=25000, resKg=0;
 
 
		String ruta = "F:/Programacion/GranosCasillas.txt";
		try {
			File GranosCasillas = new File(ruta);
			FileWriter fichero = null;
 
			if (GranosCasillas.exists()) {
				JOptionPane.showMessageDialog(null, "----- EXISTE -----");
				/*PONER PARA REEMPLAZAR EN CASO DE QUE EXISTA*/
			} else {
				JOptionPane.showMessageDialog(null, "----- NO EXISTE -----");
				JOptionPane.showMessageDialog(null, "----- CREANDO EL FICHERO GranosCasillas -----");
				JOptionPane.showMessageDialog(null, "----- ESPERE MIENTRAS SE CREA EL FICHERO -----");
				fichero = new FileWriter(GranosCasillas);
				PrintWriter pw = new PrintWriter(fichero);
				for (int f=0; f<1; f++) {
					/*Calcular y visualizar los granos de trigo que hay en cada casilla*/
					do {
						for (i=1; i<65; i++) {
							resCas*=2;
							ex++;
							pw.println("- Casilla " + i + ":  " + resCas + " granos de trigo.");
						}
					} while (ex<64 && i<=65);
 
				resKg=resCas/div;
				pw.println("\nTotal de kilos que le pedía Sissa al Soberano --> " + resKg);
 
				fichero.close();
				JOptionPane.showMessageDialog(null, "----- FICHERO CREADO -----");
				}
			}
 
		} catch(Exception e) {
			JOptionPane.showMessageDialog(null, "----- ERROR EN LA ESCRITURA -----");
		}
	}
}
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: 225
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Reemplazar fichero y arrays

Publicado por Juan (65 intervenciones) el 24/01/2020 10:19:36
Buenas Joker. si lo que quieres es reemplazar el archivo si este existe, no hace falta que hagas nada.

La instrucción:

"fichero = new FileWriter(GranosCasillas);"

ya te sustituye el fichero si este existe.

Si no quieres que sustituya lo que está escrito dentro de él, si no que se añada al final del fichero debes usar la instrucción:

"fichero = new FileWriter(GranosCasillas, true);"

Luego en tu ciclo te da un ciclo infinito por esta condición= "while (ex<64 && i<=65);" debido a que a la variable i es el for quien la modifica y la variable ex la modificas dentro del for, por lo tanto el for se sale antes de que esta condición se cumpla, y te queda en un ciclo infinito. este ciclo esta de mas, con dejar solo el for ya es suficiente. Y la variable "ex" también puedes aumentarla directamente en la condición del for.

Luego este for= "for (int f=0; f<1; f++)" se ejecuta una sola vez, por lo tanto tampoco pinta nada, y esta de mas.

Luego el fichero cierralo en un finally, de manera que si se produce un error te aseguras de que igual se cierre.

y por último para el array simplemente añades una variable ArrayList<Double> y añades a esta cada resultado.

quedando de esta manera:

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
44
45
public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);
    FileWriter fichero = null;
 
    int i=0, ex=0;
    double
    resCas=1, div=25000, resKg=0;
    ArrayList<Double> array = new ArrayList<Double>();
 
 
    String ruta = "F:/Programacion/GranosCasillas.txt";
    try {
        File GranosCasillas = new File(ruta);
 
        JOptionPane.showMessageDialog(null, "----- CREANDO EL FICHERO GranosCasillas -----");
        JOptionPane.showMessageDialog(null, "----- ESPERE MIENTRAS SE CREA EL FICHERO -----");
        fichero = new FileWriter(GranosCasillas);
        PrintWriter pw = new PrintWriter(fichero);
        /*Calcular y visualizar los granos de trigo que hay en cada casilla*/
 
        for (i=1; i<65; i++,ex++) {
            resCas*=2;
            array.add(resCas);
            pw.println("- Casilla " + i + ":  " + resCas + " granos de trigo.");
        }
 
        resKg=resCas/div;
        pw.println("\nTotal de kilos que le pedía Sissa al Soberano --> " + resKg);
        JOptionPane.showMessageDialog(null, "----- FICHERO CREADO -----");
 
    } catch(Exception e) {
        JOptionPane.showMessageDialog(null, "----- ERROR EN LA ESCRITURA -----");
    }finally{
         // En el finally cerramos el fichero, para asegurarnos
         // que se cierra tanto si todo va bien como si salta
         // una excepcion.
         try{
            if( null != fichero ){
                fichero.close();
            }
         }catch (Exception e2){
            e2.printStackTrace();
         }
    }
}
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
sin imagen de perfil
Val: 52
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Reemplazar fichero y arrays

Publicado por Joker (19 intervenciones) el 25/01/2020 18:53:41
Muchas 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