diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/astronauta.jpg b/Documentos/Fotografias/astronauta.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/astronauta.jpg
rename to Documentos/Fotografias/astronauta.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/bisontes.jpg b/Documentos/Fotografias/bisontes.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/bisontes.jpg
rename to Documentos/Fotografias/bisontes.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/boxeo.jpg b/Documentos/Fotografias/boxeo.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/boxeo.jpg
rename to Documentos/Fotografias/boxeo.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/brooklyn.jpg b/Documentos/Fotografias/brooklyn.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/brooklyn.jpg
rename to Documentos/Fotografias/brooklyn.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/desigualdad.jpg b/Documentos/Fotografias/desigualdad.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/desigualdad.jpg
rename to Documentos/Fotografias/desigualdad.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/einstein.jpg b/Documentos/Fotografias/einstein.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/einstein.jpg
rename to Documentos/Fotografias/einstein.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/hubble.jpg b/Documentos/Fotografias/hubble.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/hubble.jpg
rename to Documentos/Fotografias/hubble.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/negro.jpg b/Documentos/Fotografias/negro.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/negro.jpg
rename to Documentos/Fotografias/negro.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/reina.jpg b/Documentos/Fotografias/reina.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/reina.jpg
rename to Documentos/Fotografias/reina.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/titanic.jpg b/Documentos/Fotografias/titanic.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/titanic.jpg
rename to Documentos/Fotografias/titanic.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/tsunami.jpg b/Documentos/Fotografias/tsunami.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/tsunami.jpg
rename to Documentos/Fotografias/tsunami.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Fotografias/warishell.jpg b/Documentos/Fotografias/warishell.jpg
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Fotografias/warishell.jpg
rename to Documentos/Fotografias/warishell.jpg
diff --git a/src/main/resources/iesthiar/Documentos/Libros/coplas_manrique.txt b/Documentos/Libros/coplas_manrique.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Libros/coplas_manrique.txt
rename to Documentos/Libros/coplas_manrique.txt
diff --git a/src/main/resources/iesthiar/Documentos/Libros/fuenteovejuna_lopevega.txt b/Documentos/Libros/fuenteovejuna_lopevega.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Libros/fuenteovejuna_lopevega.txt
rename to Documentos/Libros/fuenteovejuna_lopevega.txt
diff --git a/src/main/resources/iesthiar/Documentos/Libros/lazarillo.txt b/Documentos/Libros/lazarillo.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Libros/lazarillo.txt
rename to Documentos/Libros/lazarillo.txt
diff --git a/src/main/resources/iesthiar/Documentos/Libros/quijote_cervantes.txt b/Documentos/Libros/quijote_cervantes.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Libros/quijote_cervantes.txt
rename to Documentos/Libros/quijote_cervantes.txt
diff --git a/src/main/resources/iesthiar/Documentos/Libros/vida_unamuno.txt b/Documentos/Libros/vida_unamuno.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/Libros/vida_unamuno.txt
rename to Documentos/Libros/vida_unamuno.txt
diff --git a/src/main/resources/iesthiar/Documentos/alumnos_notas.txt b/Documentos/alumnos_notas.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/alumnos_notas.txt
rename to Documentos/alumnos_notas.txt
diff --git a/src/main/resources/iesthiar/Documentos/datos.csv b/Documentos/datos.csv
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/datos.csv
rename to Documentos/datos.csv
diff --git a/src/main/resources/iesthiar/Documentos/datos_personas.bin b/Documentos/datos_personas.bin
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/datos_personas.bin
rename to Documentos/datos_personas.bin
diff --git a/src/main/resources/iesthiar/Documentos/datos_personas.csv b/Documentos/datos_personas.csv
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/datos_personas.csv
rename to Documentos/datos_personas.csv
diff --git a/src/main/resources/iesthiar/Documentos/diccionario.txt b/Documentos/diccionario.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/diccionario.txt
rename to Documentos/diccionario.txt
diff --git a/src/main/resources/iesthiar/Documentos/enteros.txt b/Documentos/enteros.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/enteros.txt
rename to Documentos/enteros.txt
diff --git a/src/main/resources/iesthiar/Documentos/frases.txt b/Documentos/frases.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/frases.txt
rename to Documentos/frases.txt
diff --git a/src/main/resources/iesthiar/Documentos/numeros.txt b/Documentos/numeros.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/numeros.txt
rename to Documentos/numeros.txt
diff --git a/src/main/resources/iesthiar/Documentos/pi-million.txt b/Documentos/pi-million.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/pi-million.txt
rename to Documentos/pi-million.txt
diff --git a/Documentos/tareas.json b/Documentos/tareas.json
new file mode 100644
index 0000000..e5f3dda
--- /dev/null
+++ b/Documentos/tareas.json
@@ -0,0 +1 @@
+[{"id":3,"description":"Aprender Java","priority":2,"completed":false},{"id":5,"description":"Aprender JSON","priority":3,"completed":false},{"id":6,"description":"Aprender GSON","priority":3,"completed":false},{"id":10,"description":"Desaprender lo aprendido","priority":1,"completed":false}]
\ No newline at end of file
diff --git a/src/main/resources/iesthiar/Documentos/usa_apellidos.txt b/Documentos/usa_apellidos.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/usa_apellidos.txt
rename to Documentos/usa_apellidos.txt
diff --git a/src/main/resources/iesthiar/Documentos/usa_nombres.txt b/Documentos/usa_nombres.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/usa_nombres.txt
rename to Documentos/usa_nombres.txt
diff --git a/src/main/resources/iesthiar/Documentos/usa_personas.txt b/Documentos/usa_personas.txt
similarity index 100%
rename from src/main/resources/iesthiar/Documentos/usa_personas.txt
rename to Documentos/usa_personas.txt
diff --git a/pom.xml b/pom.xml
index ee13fae..2e24008 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,6 +14,8 @@
17
+
+
org.junit.jupiter
@@ -21,6 +23,19 @@
5.9.2
test
+
+ utilidades
+ persona
+ system
+ 1.0
+ ${basedir}/Documentos/Persona.jar
+
+
+
+ com.google.code.gson
+ gson
+ 2.11.0
+
diff --git a/src/main/java/iesthiar/Ejercicio_B1.java b/src/main/java/iesthiar/Ejercicio_B1.java
index 5104b83..d3a06f5 100644
--- a/src/main/java/iesthiar/Ejercicio_B1.java
+++ b/src/main/java/iesthiar/Ejercicio_B1.java
@@ -12,7 +12,7 @@ public class Ejercicio_B1 {
// try-for-resources
try (Scanner lector=new Scanner(Ejercicio_B1.class.getResourceAsStream("Documentos/numeros.txt"))){
- // Alternatica a try-for-res
+ // Alternativa a try-for-res
// File f = new File("Documentos/numeros.txt");
// Scanner lector = new Scanner(f);
diff --git a/src/main/java/iesthiar/Ejercicio_B10.java b/src/main/java/iesthiar/Ejercicio_B10.java
new file mode 100644
index 0000000..66403f2
--- /dev/null
+++ b/src/main/java/iesthiar/Ejercicio_B10.java
@@ -0,0 +1,51 @@
+package iesthiar;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+/**
+ * Ejercicio sobre properties
+ */
+public class Ejercicio_B10 {
+ public static void main(String[] args) {
+ ConfigManager configuracion=new ConfigManager();
+ try {
+ configuracion.loadConfig();
+ } catch (IOException e) {
+ System.err.println(e.getMessage());
+ }
+ System.out.println("Empresa: "+configuracion.getNombreEmpresa());
+ System.out.println("Intentos máximos: "+configuracion.getMaxIntentos());
+ System.out.println("Tiempo de sesión: "+configuracion.getSesionTimeout());
+ }
+}
+
+class ConfigManager {
+ private Properties config;
+
+ public ConfigManager(){
+ config = new Properties();
+ }
+
+ public void loadConfig() throws IOException{
+ try (FileInputStream fichero=new FileInputStream("Documentos/config.properties")){
+ config.load(fichero);
+ } catch (IOException e) {
+ System.out.println("Se ha producido un error al leer el fichero de configuración");
+ throw e;
+ }
+ }
+
+ public String getNombreEmpresa(){
+ return config.getProperty("empresa.nombre");
+ }
+
+ public int getMaxIntentos(){
+ return Integer.parseInt(config.getProperty("login.max_intentos"));
+ }
+
+ public int getSesionTimeout(){
+ return Integer.parseInt(config.getProperty("sesion.timeout"));
+ }
+}
diff --git a/src/main/java/iesthiar/Ejercicio_B11.java b/src/main/java/iesthiar/Ejercicio_B11.java
new file mode 100644
index 0000000..4d2d448
--- /dev/null
+++ b/src/main/java/iesthiar/Ejercicio_B11.java
@@ -0,0 +1,140 @@
+package iesthiar;
+
+/**
+ * Buscamos la última versión de la libreria gson en maven repository y la incorporamos al proyecto
+ */
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+public class Ejercicio_B11 {
+ public static void main(String[] args) {
+ TaskManager listaTareas=new TaskManager();
+
+ // Cambiamos el valos de esta variable para leer o escribir
+ boolean escribir=false;
+ if (escribir) {
+ listaTareas.addTask(new Task(3, "Aprender Java", 2));
+ listaTareas.addTask(new Task(5, "Aprender JSON", 3));
+ listaTareas.addTask(new Task(6, "Aprender GSON", 3));
+ listaTareas.addTask(new Task(10, "Desaprender lo aprendido", 1));
+
+ listaTareas.saveTasksToFile("Documentos/tareas.json");
+ System.out.println("Fichero guardado correctamente");
+ } else {
+ // Segunda parte, recuperamos el fichero
+ listaTareas.loadTasksFromFile("Documentos/tareas.json");
+
+ listaTareas.mostrarTareas();
+ }
+
+ }
+}
+
+class Task{
+ private int id;
+ private String description;
+ private int priority;
+ private boolean completed;
+
+ public Task(int id, String description, int priority) {
+ this.id = id;
+ this.description = description;
+ setPriority(priority);
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public int getPriority() {
+ return priority;
+ }
+
+ public void setPriority(int priority) {
+ if (priority>=1 && priority<=3)
+ this.priority = priority;
+ }
+
+ public boolean isCompleted() {
+ return completed;
+ }
+
+ public void setCompleted(boolean completed) {
+ this.completed = completed;
+ }
+
+ @Override
+ public String toString() {
+ return "Task{" +
+ "id=" + id +
+ ", description='" + description + '\'' +
+ ", priority=" + priority +
+ ", completed=" + completed +
+ '}';
+ }
+}
+
+class TaskManager{
+ private List lista=new ArrayList<>();
+
+ public void addTask(Task task){
+ lista.add(task);
+ }
+
+ public void removeTask(int id){
+ lista.removeIf(task -> task.getId()==id);
+ }
+
+ public Task getTask(int id){
+ return lista.stream().filter(task -> task.getId()==id)
+ .findFirst()
+ .orElse(null);
+ }
+
+ public void saveTasksToFile(String fileName){
+ Gson gson=new Gson();
+ try (FileWriter writer=new FileWriter(fileName)){
+ writer.write(gson.toJson(lista));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public void loadTasksFromFile(String fileName){
+ Gson gson=new Gson();
+ Type tipoListaPersonas = new TypeToken>(){}.getType();
+ try (FileReader reader=new FileReader(fileName)){
+ lista=gson.fromJson(reader,tipoListaPersonas);
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public void mostrarTareas(){
+ for (Task task : lista) {
+ System.out.println(task);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/iesthiar/Ejercicio_B1v2.java b/src/main/java/iesthiar/Ejercicio_B1v2.java
new file mode 100644
index 0000000..d0f8dc5
--- /dev/null
+++ b/src/main/java/iesthiar/Ejercicio_B1v2.java
@@ -0,0 +1,77 @@
+package iesthiar;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.Scanner;
+
+/**
+ * Implementa un programa que muestre por pantalla los valores máximos y mínimos del archivo ‘numeros.txt’.
+ *
+ */
+public class Ejercicio_B1v2 {
+ public static void main(String[] args) {
+ int minimo=Integer.MAX_VALUE;
+ int maximo=Integer.MIN_VALUE;
+ // Leer de un fichero. Ruta relativa
+ File fichero=new File("Documentos/numeros.txt");
+ // Usamos try-for-resources. No hace falta cerrar, se cierra solo
+ try (Scanner entrada=new Scanner(fichero)){
+ // Leemos mientras tengamos datos
+ while (entrada.hasNext()) {
+ int numero=entrada.nextInt();
+ if (numeromaximo)
+ maximo=numero;
+ }
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ System.out.printf("Con Scanner: El mínimo es %d y el máximo es %d%n",minimo,maximo);
+
+
+ // Usando FileReader/BufferedReader
+ minimo=Integer.MAX_VALUE;
+ maximo=Integer.MIN_VALUE;
+ try (BufferedReader br = new BufferedReader(new FileReader("Documentos/numeros.txt"))) {
+ String linea;
+ while ((linea = br.readLine()) != null) {
+ int numero=Integer.parseInt(linea);
+ if (numeromaximo)
+ maximo=numero;
+ }
+ } catch (IOException e) {
+ System.err.println("Error al leer el archivo: " + e.getMessage());
+ }
+ System.out.printf("Con FileReader/BufferedReader: El mínimo es %d y el máximo es %d%n",minimo,maximo);
+
+ //Usando nio
+ minimo=Integer.MAX_VALUE;
+ maximo=Integer.MIN_VALUE;
+ Path path = Paths.get("Documentos/numeros.txt");
+ try {
+ List lines = Files.readAllLines(path);
+ for (String line : lines) {
+ int numero=Integer.parseInt(line);
+ if (numeromaximo)
+ maximo=numero;
+ }
+ } catch (IOException ex) {
+ System.err.println("Error al leer el archivo: " + ex.getMessage());
+ }
+ System.out.printf("Con nio: El mínimo es %d y el máximo es %d%n",minimo,maximo);
+
+ }
+}
diff --git a/src/main/java/iesthiar/Ejercicio_B2ConMapa.java b/src/main/java/iesthiar/Ejercicio_B2ConMapa.java
new file mode 100644
index 0000000..7665af2
--- /dev/null
+++ b/src/main/java/iesthiar/Ejercicio_B2ConMapa.java
@@ -0,0 +1,41 @@
+package iesthiar;
+
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.*;
+
+public class Ejercicio_B2ConMapa {
+ public static void main(String[] args) {
+
+ HashMap alumnos=new HashMap<>();
+ File fichero=new File("Documentos/alumnos_notas.txt");
+ try (Scanner entrada=new Scanner(fichero)){
+ while (entrada.hasNextLine()) {
+ String[] linea=entrada.nextLine().split(" ");
+ double notaMedia=0;
+ for (int i=2;i> entradas=new ArrayList<>(alumnos.entrySet());
+
+
+ entradas.sort(new Comparator>() {
+ @Override
+ public int compare(Map.Entry e1, Map.Entry e2) {
+ return e2.getValue().compareTo(e1.getValue());
+ }
+ });
+
+ for (Map.Entry entrada : entradas) {
+ System.out.printf("%.2f - %s%n",entrada.getValue(),entrada.getKey());
+ }
+ }
+}
diff --git a/src/main/java/iesthiar/Ejercicio_B2v2.java b/src/main/java/iesthiar/Ejercicio_B2v2.java
new file mode 100644
index 0000000..5f9b667
--- /dev/null
+++ b/src/main/java/iesthiar/Ejercicio_B2v2.java
@@ -0,0 +1,70 @@
+package iesthiar;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Scanner;
+
+/*
+El archivo ‘alumnos_notas.txt’ contiene una lista de 10 alumnos y las notas que han obtenido en cada
+asignatura. El número de asignaturas de cada alumno es variable. Implementa un programa que muestre
+por pantalla la nota media de cada alumno junto a su nombre y apellido, ordenado por nota media de
+mayor a menor.
+Formato entrada: Joanna Rogers 10 0 8 6 2 9 (nombre apellido )
+ */
+public class Ejercicio_B2v2 {
+
+ public static void main(String[] args) {
+ ArrayList alumnos=new ArrayList<>();
+ File fichero=new File("Documentos/alumnos_notas.txt");
+ // Try con recursos. Aquellos recursos que implementan Autocloseable o Closeable
+ // pueden definirse en el try y se cerrarán automáticamente
+ // mas: https://picodotdev.github.io/blog-bitix/2018/04/la-sentencia-try-with-resources-de-java/
+
+
+ try (Scanner entrada=new Scanner(fichero)){
+
+ while (entrada.hasNextLine()) {
+ String[] linea=entrada.nextLine().split(" ");
+ double notaMedia=0;
+ for (int i=2;i{
+ private String nombre;
+ private double notaMedia;
+
+ public Alumno(String n,double nm) {
+ nombre=n;
+ notaMedia=nm;
+ }
+
+ @Override
+ public int compareTo(Alumno otroAlumno) {
+ if (notaMedia palabras=new ArrayList<>();
+ while (entrada.hasNextLine())
+ palabras.add(entrada.nextLine());
+ Collections.sort(palabras);
+ for(String p: palabras) {
+ bfw.write(p);
+ bfw.newLine();
+ }
+ System.out.println("Fichero ordenado");
+ }
+ catch (FileNotFoundException e) {
+ System.out.println("Error al leer el fichero");
+ }
+ catch (IOException e) {
+ System.out.println("Error al escribir el fichero");
+ }
+ }
+
+}
diff --git a/src/main/java/iesthiar/Ejercicio_B4.java b/src/main/java/iesthiar/Ejercicio_B4.java
index 1d4b6eb..159ba9f 100644
--- a/src/main/java/iesthiar/Ejercicio_B4.java
+++ b/src/main/java/iesthiar/Ejercicio_B4.java
@@ -4,7 +4,11 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.List;
import java.util.Scanner;
public class Ejercicio_B4 {
@@ -29,8 +33,9 @@ public class Ejercicio_B4 {
File fileApellidos = new File("target/classes/iesthiar/Documentos/usa_apellidos.txt");
// ArrayList con los datos de los ficheros de lectura
- ArrayList listaNombres = leerDatosFichero(fileNombres);
+ //ArrayList listaNombres = leerDatosFichero(fileNombres);
ArrayList listaApellidos = leerDatosFichero(fileApellidos);
+ List listaNombres=Files.readAllLines(Paths.get("target/classes/iesthiar/Documentos/usa_nombres.txt"));
// Generamos el nombre y apellido aleatoriamente y lo escribimos en el fichero
try ( // FileWriter para escritura
@@ -56,7 +61,7 @@ public class Ejercicio_B4 {
// Devuelve un ArrayList con los datos leidos del fichero
public static ArrayList leerDatosFichero(File f) throws FileNotFoundException {
- try ( Scanner lector = new Scanner(f);){
+ try ( Scanner lector = new Scanner(f);){
ArrayList lista = new ArrayList<>();
while (lector.hasNext()) {
lista.add(lector.nextLine());
diff --git a/src/main/java/iesthiar/Ejercicio_B5.java b/src/main/java/iesthiar/Ejercicio_B5.java
index 8dcc5a6..b89560d 100644
--- a/src/main/java/iesthiar/Ejercicio_B5.java
+++ b/src/main/java/iesthiar/Ejercicio_B5.java
@@ -24,8 +24,8 @@ public class Ejercicio_B5 {
ArrayList alDiccionario = new ArrayList<>();
// Lectura de diccionario.txt
- File fileDiccionario = new File("Documentos/diccionario.txt");
- Scanner reader = new Scanner(fileDiccionario);
+ //File fileDiccionario = new File("Documentos/diccionario.txt");
+ Scanner reader = new Scanner(Ejercicio_B5.class.getResourceAsStream("Documentos/diccionario.txt"));
// Recorremos el archivo y vamos añadiendo las palabras al ArrayList
while (reader.hasNext()) {
@@ -34,6 +34,7 @@ public class Ejercicio_B5 {
// Cerramos archivo
reader.close();
+ System.out.println(alDiccionario.size());
// Creamos dentro de la carpeta 'Diccionario' tantos archivos como letras del abecedario (A.txt, B.txt, C.txt,...)
for (int i = 65; i <= 90; i++) {
diff --git a/src/main/java/iesthiar/Ejercicio_B6.java b/src/main/java/iesthiar/Ejercicio_B6.java
index c5a467d..788e6f3 100644
--- a/src/main/java/iesthiar/Ejercicio_B6.java
+++ b/src/main/java/iesthiar/Ejercicio_B6.java
@@ -16,8 +16,8 @@ public class Ejercicio_B6 {
String numeroBuscar = teclado.nextLine();
// Intentamos abrir el fichero 'pi-million.txt'
- File fileNumeroPI = new File("Documentos/pi-million.txt");
- Scanner lector = new Scanner(fileNumeroPI);
+ //File fileNumeroPI = new File("Documentos/pi-million.txt");
+ Scanner lector = new Scanner(Ejercicio_B6.class.getResourceAsStream("Documentos/pi-million.txt"));
//Cogemos todos los decimales del número PI del fichero
String decimalesPI = (lector.nextLine()).substring(2);
@@ -44,8 +44,8 @@ public class Ejercicio_B6 {
System.out.println("El número " + numeroBuscar + " no ha sido encontrado" );
}
- } catch (FileNotFoundException e){
- System.out.println("Error: El fichero no existe");
+ // } catch (FileNotFoundException e){
+ // System.out.println("Error: El fichero no existe");
}catch (Exception e) {
System.out.println("Error: " + e);
}
diff --git a/src/main/java/iesthiar/Ejercicio_B8.java b/src/main/java/iesthiar/Ejercicio_B8.java
new file mode 100644
index 0000000..e37e844
--- /dev/null
+++ b/src/main/java/iesthiar/Ejercicio_B8.java
@@ -0,0 +1,80 @@
+package iesthiar;
+
+/*
+ * Añadimos la dependencia en pom.xml para añadir el fichero Persona.jar
+ *
+ utilidades
+ persona
+ system
+ 1.0
+ ${basedir}/Documentos/Persona.jar
+
+ */
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Scanner;
+
+import utilidades.Persona;
+
+public class Ejercicio_B8 {
+ public static void main(String[] args) {
+ Map personas=new HashMap<>();
+
+ try (Scanner lectura=new Scanner(new File("Documentos/datos_personas.csv"))){
+ while (lectura.hasNextLine()){
+ String linea=lectura.nextLine();
+ String[] elementos=linea.split(";");
+ if (elementos.length==4){
+ Persona p=new Persona(elementos[0],elementos[1],elementos[2],Integer.parseInt(elementos[3]));
+ personas.put(p.getDni(),p);
+ }
+ else System.err.println("Errór en lectura de elemento:"+linea);
+ }
+ System.out.println("Se han incorporado "+personas.size()+" personas");
+ } catch (FileNotFoundException e) {
+ System.out.println("Fichero no encontrado");
+ //throw new RuntimeException(e);
+ }
+
+ // Segunda parte. Datos de las personas
+ String respuesta="";
+ try (Scanner entrada=new Scanner(System.in)) {
+ while (!respuesta.toLowerCase().equals("fin")) {
+ System.out.println("Introduce un dni a mostrar (fin termina): ");
+ respuesta = entrada.nextLine();
+ if (!respuesta.equalsIgnoreCase("fin")){
+ Persona p=personas.get(respuesta);
+ if (p!=null)
+ p.imprime();
+ else
+ System.out.println("Ese DNI no se encuentra");
+ }
+ }
+ }
+
+ // Tercera parte. Salida de jubilados
+ try (BufferedWriter salida=new BufferedWriter(new FileWriter("Documentos/datos_jubilados.csv"))){
+ List dnis= new ArrayList<>(personas.keySet());
+ Collections.sort(dnis);
+ for (String dni : dnis) {
+ Persona p=personas.get(dni);
+ if (p.esJubilado()) {
+ salida.write(p.getDni() + ";" + p.getNombre() + ";" + p.getApellidos() + ";" + p.getEdad());
+ salida.newLine();
+ }
+ }
+ System.out.println("Creación del fichero finalizada");
+ } catch (IOException e) {
+ System.out.println("Error al escribir el fichero de salida");
+ //throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/src/main/java/iesthiar/Ejercicio_B9.java b/src/main/java/iesthiar/Ejercicio_B9.java
new file mode 100644
index 0000000..d09a3e4
--- /dev/null
+++ b/src/main/java/iesthiar/Ejercicio_B9.java
@@ -0,0 +1,62 @@
+package iesthiar;
+
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import utilidades.Persona;
+
+public class Ejercicio_B9 {
+ public static void main(String[] args) {
+ ArrayList personas;
+
+ // Primera parte. Lectura objeto serializado
+ try (FileInputStream fis=new FileInputStream("Documentos/datos_personas.bin");
+ BufferedInputStream bis=new BufferedInputStream(fis);
+ ObjectInputStream ois=new ObjectInputStream(bis)
+ ){
+ personas=(ArrayList)ois.readObject();
+ System.out.println("Se han incorporado "+personas.size()+" personas");
+
+ // Segunda parte. Filtrado de los datos
+ List veintes=personas.stream()
+ .filter(persona -> persona.getEdad()>=20 && persona.getEdad()<=29)
+ .toList();
+
+ // Versión clásica. Recorrido de la estructura
+// List veintes=new ArrayList<>();
+// for (Persona persona : personas) {
+// if (persona.getEdad()>=20 && persona.getEdad()<=29)
+// veintes.add(persona);
+// }
+ System.out.println("Tenemos "+veintes.size()+" veinteañeros");
+
+ // Tercera parte. Guardado de la estructura, serialización
+ try (FileOutputStream fos=new FileOutputStream("Documentos/datos_veintes.bin",false);
+ BufferedOutputStream bos=new BufferedOutputStream(fos);
+ ObjectOutputStream oos=new ObjectOutputStream(bos)){
+ oos.writeObject(veintes);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ } catch (FileNotFoundException e) {
+ System.out.println("Fichero no encontrado");
+ //throw new RuntimeException(e);
+ } catch (IOException e) {
+ System.out.println("Error en la lectura del fichero");
+ throw new RuntimeException(e);
+ } catch (ClassNotFoundException e) {
+ System.out.println("Error en la lectura de los datos");
+ throw new RuntimeException(e);
+ }
+ }
+}