Foros del Web » Programación para mayores de 30 ;) » Java »

Problema a la hora de guardar en un .txt

Estas en el tema de Problema a la hora de guardar en un .txt en el foro de Java en Foros del Web. HOLAS! vereis, estoy practicando y he intentado hacer el juego del master mind, se trata de descubrir los numeros, os pego el codigo y os ...
  #1 (permalink)  
Antiguo 15/05/2009, 16:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Problema a la hora de guardar en un .txt

HOLAS! vereis, estoy practicando y he intentado hacer el juego del master mind, se trata de descubrir los numeros, os pego el codigo y os digo lo que no consigo hacer funcionar, es a la hora de guardar los resultados en un .txt con el nombre y la puntuacion

Código:
package mastermind;




	import java.util.Scanner;
	import java.io.FileReader;
	import java.io.BufferedReader;
	import java.io.IOException;
	import java.io.BufferedWriter;
	import java.io.FileWriter;





public class Main {

private static boolean verificarnumrepetidos(int valor,int array[] ){
    
    boolean sortir = false;
    int i = 0;
    while (sortir == false && i < array.length){
        if (array[i] == valor){
            sortir = true;
        } else {
            i++;
        }
        
    }
    
    return sortir;
}

private static void comparararrays(int arrayusuari[], int arraycombinacio[],int arraycerosyuns[]) {

 

    int r = 0;
    while (r < 5){
        int t = 0;
        while(t < 5){
            if (arrayusuari[r] == arraycombinacio[t]) {
                if (r == t){
                    arraycerosyuns[r] = 1;
                }
                else {
                    arraycerosyuns[r] = 0;
                }
                t = 5;
            }
            else{
                arraycerosyuns[r] = 9;
            }
            t++;
        }
    r++;
    }

}





 private static void numerosecreto(int array[]) {
//CREAR EL MALDITO NUMERO ALEATORIO
    int j = 0 ;
    int valor = 0;

    while (j < array.length){
        valor = new Double(Math.random()*10).intValue() ;
        
        if (valor >=2 && verificarnumrepetidos(valor,array) == false){
            array[j] = valor;
            j++;
        }
        
    }
   
}


private static void posarnumeros(int array[]) {
// EL USUARIO METE SUS 5 NUMEROS Y QUE SEAN DIFERENTES
    int intentos = 0;
    int  numero = 0;

    while (intentos < 5){

        if (intentos == 0){
             array [0] = numero ;
        }

		Scanner leer=new Scanner(System.in);
		System.out.println("Introduce el numero");
		numero = leer.nextInt();

//comprovamos que no es igual y que no es ni 1 ni 0
        int zona = 0;
        while (zona < 5) {
            if (numero != array[zona] && numero != 0 && numero != 1) {
             }
        else {
             System.out.println("El numero que has introducido no es correcto, "+numero+", recuerda que no puede ser igual que uno anterior, tampoco puede ser ni 0 ni 1");
             numero = leer.nextInt();
          
             }
                zona++;

 //acaba la comprovacion y hacemos la array con los 5 numeros



        }
      
      array [intentos] = numero ;
      intentos ++;

}
}


    public static void main(String[] args) {

        //array maquina
      int array_combinacio []= new int [5];

      numerosecreto(array_combinacio);

       System.out.println("el numero secreto era "+array_combinacio[0]+array_combinacio[1]+array_combinacio[2]+array_combinacio[3]+array_combinacio[4]);

        int puntuacion = 11;

        // array usuari

       int a = 1;
       while (a < 10) {



        int arrayusuari []= new int [5];

        posarnumeros(arrayusuari);

        System.out.println("la "+a+"ºconbinacion es "+arrayusuari[0]+"-"+arrayusuari[1]+"-"+arrayusuari[2]+"-"+arrayusuari[3]+"-"+arrayusuari[4]);


        // Comparacion de numeros
        int arraycerosyuns []= new int [5];
        comparararrays (arrayusuari,array_combinacio, arraycerosyuns);

  System.out.println(" _____________________________________________");
  System.out.println("|                                             |");
  System.out.println("|                  >"+arraycerosyuns[0]+"-"+arraycerosyuns[1]+"-"+arraycerosyuns[2]+"-"+arraycerosyuns[3]+"-"+arraycerosyuns[4]+"<                |");
  System.out.println("|   1 esta en su sitio, 0 esta, 9 no existe   |");
  System.out.println("|_____________________________________________|");
        puntuacion --;

        a++;
        int q = 0;
        while (q < 5) {
        if (arrayusuari[q] == array_combinacio[q]){
            a = 11;
            }
        else{
            q = 5;
        }
        q++;
        }
       }


// puntuacion en un fitxer
       
       	Scanner leer=new Scanner(System.in);
        System.out.println("Introduce el nuevo Nombre");
		String nombre = leer.nextLine();
        System.out.println(nombre+" tu puntuacion es: "+puntuacion);

// ESTO NO VA
try {

    	FileWriter fw = new FileWriter("puntuacion.txt");
           BufferedWriter bw = new BufferedWriter(fw);
           
            bw.newLine();
			bw.write(nombre " tiene "+puntuacion);

    		bw.flush();
    		bw.close();
    		fw.close();

}



       
       }
} 
Saludos y gracias
  #2 (permalink)  
Antiguo 15/05/2009, 16:38
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 6 meses
Puntos: 10
Respuesta: Problema a la hora de guardar en un .txt

Todo el problema esta aqui:

bw.write(nombre " tiene "+puntuacion);

Te falta el "+" entre la variable nombre y el siguiente String, noe stas concatenando.

Debe ir asi:

bw.write(nombre + " tiene "+puntuacion);


Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 15/05/2009, 16:59
 
Fecha de Ingreso: mayo-2009
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema a la hora de guardar en un .txt

sep, eso era un pequeño error, el problema esque ni cambiando eso funciona, aunque ponga:
bw.write(" hola ");
no funciona, el netbeans me dice que el fallo esta en el try{
...
}

te pongo una screen del netbeans:
http:_____//img199.imageshack.us/img199/4180/dibujobco.jpg
(quita las barrasbajas, no me deja por ser nuevo :( )
Y gracias por la ayuda :D
  #4 (permalink)  
Antiguo 15/05/2009, 17:04
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 6 meses
Puntos: 10
Respuesta: Problema a la hora de guardar en un .txt

Eso es por que tienes un bloque try sin el catch

debes ponerle el catch. de esta forma.

Código PHP:
try {

        
FileWriter fw = new FileWriter("puntuacion.txt");
        
BufferedWriter bw = new BufferedWriter(fw);
           
        
bw.newLine();
    
bw.write(nombre " tiene "+puntuacion);

        
bw.flush();
        
bw.close();
        
fw.close();
} catch(
Exception e)  {
    
e.printStackTrace();

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 15/05/2009, 17:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema a la hora de guardar en un .txt

leches sabia que se me pasaba algo!! muchisimas gracias

lo que mi codigo no resultaba tan bueno, queria que los resultados los guardara en el .txt en lineas consecutivas pero lo substituye, alguna idea ?

Saludos y muchisimas gracias
  #6 (permalink)  
Antiguo 15/05/2009, 17:15
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 6 meses
Puntos: 10
Respuesta: Problema a la hora de guardar en un .txt

Indicale que quieres que vaya agrenago la informacion, solo debes cambiar esto:

FileWriter fw = new FileWriter("puntuacion.txt");

Por esto:

FileWriter fw = new FileWriter("puntuacion.txt", true);

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #7 (permalink)  
Antiguo 15/05/2009, 17:23
 
Fecha de Ingreso: mayo-2009
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema a la hora de guardar en un .txt

vale ya tengo el programa echo ^_^

gracias por todo ^_^
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:42.