Java - Ayuda con ejercicio sencillo de serie de números

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

Ayuda con ejercicio sencillo de serie de números

Publicado por Santi (2 intervenciones) el 20/12/2018 18:13:33
Hola a todos, escribo esto por si me podeis ayudar con un ejercicio que tengo en mi asignatura de programacion y no sé como hacerlo, es sencillo, pero sobre todo la parte de leer un archivo no tengo ni idea como hacerlo.
El enunciado lo dejo en la foto adjunta, seria la actividad 1.
Muchas gracias a todos de antemano!!!

Sin-titulo
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 Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con ejercicio sencillo de serie de números

Publicado por Kabuto (1381 intervenciones) el 21/12/2018 01:33:57
Hola, para leer ficheros hay distintas clases.
En este caso, para que nos permita leer números enteros directamente con facilidad, lo más cómodo es usar la clase Scanner, la misma que habitualmente usamos para leer por teclado.

Con un objeto Scanner, pasandole como argumento a su constructor un objeto File que represente al fichero al queremos acceder, será suficiente para pedirle que vaya buscando números enteros en un fichero de texto.

Ya el proceso sería pedirle un entero, contarlo (ya que nos piden informar del total de enteros leidos) y luego comprobar si es mayor/igual que el "separador" (vaya nombre estúpido han elegido, puede crear confusion) que el usuario ha introducido por teclado o si es menor.
Y luego pedir otro entero.

Los enteros los pedimos usando un bucle while, mientras haya enteros en el fichero, el while seguirá ejecutándose.

Te dejo un código para que veas como se hace. Es muy sencillo en realidad.
Fíjate que primero uso un Scanner para pedir datos por teclado. Cuanto tengo los datos necesarios, "cierro" este Scanner y creo uno nuevo que será el encargado de leer el fichero.

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
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
 
public final class LeerEnteros {
 
	public static void main(String[] args) {
		//Declaramos variables
		Scanner teclado = new Scanner(System.in);
		int mayorOigualSeparador = 0;
		int menoresSeparador = 0;
		int totalEnterosLeidos = 0;
		//Pedimos datos
		System.out.print("Escriba el nombre del fichero: ");
		String fichero = teclado.nextLine();
		System.out.print("Escriba el valor del separador: ");
		int separador = teclado.nextInt();
		teclado.close();
		//Intentamos leer fichero
		try {
			Scanner lectorFichero = new Scanner(new File(fichero));
			while (lectorFichero.hasNextInt())
			{
				int entero = lectorFichero.nextInt();
				totalEnterosLeidos++;
				if (entero >= separador)
					mayorOigualSeparador++;
				else
					menoresSeparador++;
			}
			lectorFichero.close();
		} catch (FileNotFoundException e) {
			System.out.println("\nERROR: No se encontró el fichero: " + fichero);
		}
		//Presentamos resultados
		System.out.println("\nEl separador es el " + separador);
		System.out.printf("Se han leido del fichero %d números.", totalEnterosLeidos);
		System.out.printf("\nHay %d números mayores o iguales que el separador.", mayorOigualSeparador);
		System.out.printf("\nHay %d números menores que el separador", menoresSeparador);
	}
 
}
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 8 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con ejercicio sencillo de serie de números

Publicado por Santi (2 intervenciones) el 24/12/2018 11:14:19
Muchas gracias!!! Me ha servido de mucho
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