commit bc21e2b50b07af506f5f45f948c5cef62b02a86d Author: Cristobal Date: Sun Nov 20 21:23:47 2022 +0100 Commit diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..57bca72 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..ee35a34 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + Actividad_11 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8c9943d --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/README.md b/README.md new file mode 100644 index 0000000..917bd22 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +En esta aplicacion lo que queremos conseguir es que con el archivo que creamos en el proyecto 8_1 hagamos un XML. + +Lo que tendremos que hacer es leer el archivo .data que creamos y ya luego escribir en un nuevo archivo que creamos desde el propio termina +que es un xml. + +``` + +El archivo XML de personas se ha creado correctamente! + + +Resultado: + + + + + + + + + diff --git a/bin/com/cristobalbernal/Actividad11/Main.class b/bin/com/cristobalbernal/Actividad11/Main.class new file mode 100644 index 0000000..6db8159 Binary files /dev/null and b/bin/com/cristobalbernal/Actividad11/Main.class differ diff --git a/bin/com/cristobalbernal/Actividad11/Personas.class b/bin/com/cristobalbernal/Actividad11/Personas.class new file mode 100644 index 0000000..58e57f0 Binary files /dev/null and b/bin/com/cristobalbernal/Actividad11/Personas.class differ diff --git a/bin/com/cristobalbernal/Actividad11/package-info.class b/bin/com/cristobalbernal/Actividad11/package-info.class new file mode 100644 index 0000000..f5e9669 Binary files /dev/null and b/bin/com/cristobalbernal/Actividad11/package-info.class differ diff --git a/bin/module-info.class b/bin/module-info.class new file mode 100644 index 0000000..c253d5e Binary files /dev/null and b/bin/module-info.class differ diff --git a/src/com/cristobalbernal/Actividad11/Main.java b/src/com/cristobalbernal/Actividad11/Main.java new file mode 100644 index 0000000..946bd58 --- /dev/null +++ b/src/com/cristobalbernal/Actividad11/Main.java @@ -0,0 +1,125 @@ +package com.cristobalbernal.Actividad11; + +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.ArrayList; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class Main { + + public static void main(String[] args) throws EOFException { + File fichero = new File("C:\\Users\\crist\\Documents\\2DAM\\BaseDeDatos\\Personas.dat"); + ArrayList personas = leerFichero(fichero); + + if(crearXml(personas)) { + System.out.println("El archivo XML de personas se ha creado correctamente!"); + } else { + System.out.println("Error al crear el archivo XML de personas"); + } + + } + + public static boolean crearXml(ArrayList personas) { + boolean creadoCorrectamente = false; + + try { + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + Document doc = docBuilder.newDocument(); + + Element personasXml = doc.createElement("Personas"); + doc.appendChild(personasXml); + + for(int i = 0; i < personas.size(); i++) { + Element persona = doc.createElement("Persona"); + personasXml.appendChild(persona); + + Attr nombre = doc.createAttribute("nombre"); + nombre.setValue(personas.get(i).getNombre()); + persona.setAttributeNode(nombre); + Attr apellido = doc.createAttribute("apellido"); + apellido.setValue(personas.get(i).getApellido()); + persona.setAttributeNode(apellido); + Attr edad = doc.createAttribute("edad"); + edad.setValue(String.valueOf(personas.get(i).getEdad())); + persona.setAttributeNode(edad); + } + + + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + DOMSource source = new DOMSource(doc); + StreamResult result = new StreamResult(new File("C:\\Users\\crist\\Documents\\2DAM\\BaseDeDatos\\Personas.xml")); + transformer.transform(source, result); + + creadoCorrectamente = true; + } catch (ParserConfigurationException pce) { + pce.printStackTrace(); + } catch (TransformerException tfe) { + tfe.printStackTrace(); + } + + return creadoCorrectamente; + } + + @SuppressWarnings("resource") + public static ArrayList leerFichero(File fichero) { + FileInputStream filein = null; + try { + filein = new FileInputStream(fichero); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + ObjectInputStream dataIS = null; + try { + dataIS = new ObjectInputStream(filein); + } catch (IOException ioe) { + + } + + String[] nombres; + String[] apellidos; + int[] edades; + + try { + nombres = (String[]) dataIS.readObject(); + apellidos = (String[]) dataIS.readObject(); + edades = (int[]) dataIS.readObject(); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + + ArrayList personas = new ArrayList<>(); + + for (int i = 0; i < nombres.length; i++) { + personas.add(new Personas(nombres[i],apellidos[i],edades[i])); + } + + try { + dataIS.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return personas; + } + +} diff --git a/src/com/cristobalbernal/Actividad11/Personas.java b/src/com/cristobalbernal/Actividad11/Personas.java new file mode 100644 index 0000000..a5cae28 --- /dev/null +++ b/src/com/cristobalbernal/Actividad11/Personas.java @@ -0,0 +1,34 @@ +package com.cristobalbernal.Actividad11; + +public class Personas { + private String nombre; + private String apellido; + private int edad; + + public int getEdad() { + return edad; + } + public String getNombre() { + return nombre; + } + + public void setEdad(int edad) { + this.edad = edad; + } + public void setNombre(String nombre) { + this.nombre = nombre; + } + public String getApellido() { + return apellido; + } + public void setApellido(String apellidos) { + this.apellido = apellidos; + } + + public Personas(String nombre,String apellidos, int edad) { + this.nombre = nombre; + this.apellido = apellidos; + this.edad = edad; + } + +} diff --git a/src/com/cristobalbernal/Actividad11/package-info.java b/src/com/cristobalbernal/Actividad11/package-info.java new file mode 100644 index 0000000..61f2ece --- /dev/null +++ b/src/com/cristobalbernal/Actividad11/package-info.java @@ -0,0 +1 @@ +package com.cristobalbernal.Actividad11; \ No newline at end of file diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000..4ba2e24 --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,10 @@ +/** + * + */ +/** + * @author crist + * + */ +module Actividad_11 { + requires java.xml; +} \ No newline at end of file