Hola, buenas.
Estoy haciendo ejercicios de un libro de Java. En un ejercicio, se me pedía el uso de archivos:
El problema que tengo no es de compilación (compila bien), sino de ejecución. Cuando lo ejecuto, se lee la primera línea del archivo, se imprime, y se pausa el programa para la entrada (como es de esperar). El problema es que al introducir un valor de entrada (booleana, por ejemplo, true), en una nueva línea se imprime true y el programa se para de nuevo. Si introduzco la entrada de nuevo, el programa hace lo que debería, pero en cada entrada hay que introducir dos entradas. Ejemplo:
Los "# [...]" son comentarios que os hago para entender la ejecución.
Este es el código que tengo:
test_infidelidad.txt
Gracias por leer.
Estoy haciendo ejercicios de un libro de Java. En un ejercicio, se me pedía el uso de archivos:
CitarRealiza un programa que nos diga si hay probabilidad de que nuestra pareja
nos está siendo infiel. El programa irá haciendo preguntas que el usuario
contestará con verdadero o falso. Cada pregunta contestada como verdadero
sumará 3 puntos. Las preguntas contestadas con falso no suman puntos. Utili-
za el fichero
test_infidelidad.txt
para obtener las preguntas y las conclusiones
del programa.
El problema que tengo no es de compilación (compila bien), sino de ejecución. Cuando lo ejecuto, se lee la primera línea del archivo, se imprime, y se pausa el programa para la entrada (como es de esperar). El problema es que al introducir un valor de entrada (booleana, por ejemplo, true), en una nueva línea se imprime true y el programa se para de nuevo. Si introduzco la entrada de nuevo, el programa hace lo que debería, pero en cada entrada hay que introducir dos entradas. Ejemplo:
Código [Seleccionar]
¿Ha sido fiel a su pareja? true # Ese true lo introduje por teclado. Pulso enter
true # Se imprime mágicamente
true # Tengo que introducir de nuevo la respuesta
¿Quiere a su pareja?
Los "# [...]" son comentarios que os hago para entender la ejecución.
Este es el código que tengo:
Código (java) [Seleccionar]
import java.io.RandomAccessFile;
import java.io.IOException;
import java.util.Scanner;
public class Ejercicio_16 {
public static void main(String[] args) {
try {
RandomAccessFile archivo =
new RandomAccessFile ("test_infidelidad.txt", "r");
Scanner scanner = new Scanner(System.in);
String linea;
boolean respuesta_correcta;
boolean respuesta;
int puntuacion, puntuacion_maxima;
puntuacion = 0;
puntuacion_maxima = 0;
while(null != (linea = archivo.readLine())) {
respuesta_correcta = archivo.readBoolean();
System.out.print(linea + " ");
respuesta = scanner.nextBoolean();
if(respuesta == respuesta_correcta)
puntuacion += 3;
puntuacion_maxima += 3;
}
System.out.println("Ha sacado " + puntuacion + "/" + puntuacion_maxima + " de puntuación");
archivo.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
test_infidelidad.txt
Código [Seleccionar]
¿Ha sido fiel a su pareja?
true
¿Quiere a su pareja?
true
¿Tiene su pareja o sus hijos algún entrenador personal?
false
¿Pone su pareja excusas para acostarse?
false
Gracias por leer.