From b2635f4e3e0fa4046337bded56e1d9a5cf6d93ed Mon Sep 17 00:00:00 2001 From: kevin Date: Fri, 25 Nov 2022 18:58:26 +0100 Subject: [PATCH] Actividad 11 --- .classpath | 10 ++ .project | 17 +++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 14 +++ bin/dam/com/es/Main.class | Bin 0 -> 5214 bytes bin/dam/com/es/Persona.class | Bin 0 -> 892 bytes src/dam/com/es/Main.java | 116 +++++++++++++++++++++ src/dam/com/es/Persona.java | 27 +++++ 8 files changed, 186 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 bin/dam/com/es/Main.class create mode 100644 bin/dam/com/es/Persona.class create mode 100644 src/dam/com/es/Main.java create mode 100644 src/dam/com/es/Persona.java 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..3b9d32a --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + Actividad11 + + + + + + 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/bin/dam/com/es/Main.class b/bin/dam/com/es/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..f440596e0a4dbfe4032e179dc26f3fd889d95bde GIT binary patch literal 5214 zcma)Adwd*K75-+k+1cF;DYOK-eZUrMo1|&B1*LUU3L#BPFptudl(eZZ*_|X)c6Zj< z*|tGNMMR(~sDK4ul!rk@1=Ku<7JQ%-Eh;MDlPXwI@%{M6AI9(AnceKR3+2a;%-ws> z`+Vn|d;8@79yti$eEdg+Pr;m|o{lA~bj--bx^y$6!mr@uUHWc4meMoBv7W(QM#51L zSZ8KTXT5@|`i4FQ{x&OVgi(c%hH3;Tr_;Rp0B_W@flWs0_F7O&D3nv@$sra}}H_sZ1-@-m|fI zq~cTsTH$1)nKFVnO~JWs@qx>7hMgO@%GhmY1~yoUeA>u3xq(*4+-)ZHJsHO^HEa*zY%EprhO#{Mj^-RA ztzj9KGe=gQDXVjp(uU0pqQg)cdb%Zu1_kG}r=q&6D|&fXXEbRNSTmx|6qA2hA1p_$oRYwuf;6T2)-ApkBmyZ)|Tm70c?j zKyR#o+l%sMDoMQQ3CFTWHC%)?LNH_O>B!_9J(Hl?rg|52uSWopcmdiqY{VwkEyWz8 zM*#YDNTZkzyhX(&3YMJEb`72Aa*Zx%6PR!4wCv&7o^uniB%4yJ!J^=5{s3JxJ;c#+9Kp{({MTZX`r6X8kuC<2qUgwS$!Ep zH@hHdr_%x!VnEP(GG$+!|Bsgc{;Zfc@4X&bMoL2j0n0)6RD8$??$$Wi`1^L1S6nycPrV zb^|`B;X}AtK`m>rM5cnXPb`NC{cu^~&1#dS)YH{#qmvrkS58YyCZzmWIYvSvPO6KPxk8Fo<;yM#M?+e$~T z0%bd|KuIg%^?X9B#Fc`Hg??E+A2_B2r?*KkotTp>Rb-Kqvr<21U(9+J261WpUZK=zYfbUouvr5qVkAc(CySvx7)2@W z@F`S`Ah#vhIYcVTu22^uf>|+$SCw!S^7L9z5{%9e8A}s9YuVNcm?4XY`dG1uq}EvZ z#pG2k9V)(~;B*1_0((a$oA)k^VLXmIRUA^VKvKvNvL&B!%(PJiZ5U7Bd!n4bKYMSL zgj+{!Ymd19v$#||r65vJ<323P6dlG7g^VA~%AhwT6tX}MV2Y&2rG#Xvdo$s^JRpXy!Nu&m zqQnD|o>dai$_|hy?Dk<19=2`q;*^~hOTc*ZT?+WQ;**kpRsM?ctMFUhIDz0pT=)>? zUvUhah8q6WTmpVi;;#^DF^5zqb1g)jBE{TG;X-`lH0Jfst((BpsQ&TXWW6> zhjG^2`f)Ulp++oYTnb%&sp||WA;R@SN?uH@XYju>X>t?|I7`|Pb){o9&LLlzC+Fgg z)INtiZ^C)BXASp-rS8sJ?z~y<_+G&h74uZYRoc$CAWzou#K$K(1K=BCFoefPtJY0o zeOJ>sHgvBX$Hj4f#6P!t3Y&e1S4aGj>M8X3u&wI6z!)+-+U_2yk?M##g#jLM^NK0x zqz^`djdg)>7>~gm$5m6Xe2A!#;1nE}Zm&xhiiAq&uAam-1=5g9dR;)N3p9@7x&t#e zPvZUYK!j315Lc&hOMk>afse$4)3~i)2K{3U`ULKXhlHj`XdIvLuN%Y3!lS##5ES3B zg%8kgAItk$4r1|ro&(g)LWYq9mU6eA*>7Of8=2dce0?|b(Yp#wjQko#y_NCqWW=xF zFB5CwFwQrzsBb0BU09F%_|$m-7h-~xhxl-M8XKsm9nbOg^E@`;2rkBpxI||4Zi%9! zGJ_%`FXD6fJaZVpQL0T5YC|4oc6eG_R=^mhWk6@Z~6GYnA@O9E1qLzbrlyuKg`eXP8^&a8s zo76aqD}s7z3X;0uS%mq~d-*rSso0 zD9^>-wvxPJ@_iwn?4{%z#Gg1NYoGIZA8An}mkn>LAF3}FBx+%d72-)s3kx*i$q zgTSVV=wp{5nDyc?cQoFfBjwN zSnRp0^I7{Z;~(_1L$3bG)c|uOdP+5IJ=??AK95cy&FwQT)ml;sJnTfx48z2vv(r2- z(*9y-hW1vu8!D$6_l}BJ^-;dyUwQ>KDxOjC>?^1hK$$Oy14Ux@j0cjdhED#AN__bD F{{i7Sp2`3K literal 0 HcmV?d00001 diff --git a/bin/dam/com/es/Persona.class b/bin/dam/com/es/Persona.class new file mode 100644 index 0000000000000000000000000000000000000000..3395093fdb9445b78f279a0ed81616e2532d34f4 GIT binary patch literal 892 zcmZ{h-)b5`7{$-5s~gQmjT+nhX`8e+Y9adoO>z@j2uND62)!J2FcWka)=e++Ou1;G zA<&CHKp(2~%?rik;;?>pyrK7arD`3t})-URRj8WTB>#>qTVi|CU|7fCDw_yYB7 z`Bg?U8Be2+qiZ$J0+a+=_Ejg*K&4vF^sOAtlt3v?=A)E{Mt|8h$Wk3o-wF6?A}0dk zf`unK*4ddryR%+-(H*k*JejBp3aEwHL|vfJ=?=@Fbcg^O=F|#NMn$03*Ri_1nU7TZ zIp=8fld+r)CE3X39{ub}FWA*zPfED*RArZrzSZfjQ?X>REZKR2+h7Njd2eHqmq7#e zju}d6{xbg&6mTx4bSkLHwsuAVNb@$vo>{Sb7Jp6#o7qk zEFG#=DWt;|9jaE{;IZ1N3+!UgDMj4PZ^hmZY=7gygTXYZfci>v@v(Uy2d?>y)t;%g zNtXx)7ie-`EvwMZs~*FZTsVOjc%ZEHfgAt; literal 0 HcmV?d00001 diff --git a/src/dam/com/es/Main.java b/src/dam/com/es/Main.java new file mode 100644 index 0000000..c6b4563 --- /dev/null +++ b/src/dam/com/es/Main.java @@ -0,0 +1,116 @@ +package dam.com.es; + +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 { + //Fichero de objetos Persona + File fichero = new File("C:\\Users\\kevin\\Documents\\Atividad11\\FichPersona.dat"); + //Guardamos los datos de las personas para poder crear el archivo XML + ArrayList personas = leerFichero(fichero); + //Comprueba que el archivo XML se ha creado correctamente + if(crearArchivoXml(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 crearArchivoXml(ArrayList personas) { + boolean creadoCorrectamente = false; + + try { + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + Document doc = docBuilder.newDocument(); + + //Se define el array de personas + Element personasXml = doc.createElement("Personas"); + doc.appendChild(personasXml); + + for(int i = 0; i < personas.size(); i++) { + //Se definen las personas + Element persona = doc.createElement("Persona"); + personasXml.appendChild(persona); + //Se definen los atributos de cada persona, se les asigna el valor adecuado y se añaden al elemento persona + Attr nombre = doc.createAttribute("nombre"); + nombre.setValue(personas.get(i).getNombre()); + persona.setAttributeNode(nombre); + Attr edad = doc.createAttribute("edad"); + edad.setValue(String.valueOf(personas.get(i).getEdad())); + persona.setAttributeNode(edad); + } + + //Se escribe el contenido del XML en un archivo + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + DOMSource source = new DOMSource(doc); + StreamResult result = new StreamResult(new File("C:\\Users\\kevin\\Documents\\Atividad11\\Personas.xml")); + transformer.transform(source, result); + + creadoCorrectamente = true; + } catch (ParserConfigurationException pce) { + pce.printStackTrace(); + } catch (TransformerException tfe) { + tfe.printStackTrace(); + } + return creadoCorrectamente; + } + + 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; + int[] edades; + + try {//Qui es donde lee los datos del archivo + nombres = (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<>(); //Se crea la lista que tendra los datos de las personas + + for (int i = 0; i < nombres.length; i++) {//Cojemos los datos y se crea nueva paginas y añaden en la lista de personas + personas.add(new Persona(nombres[i], edades[i])); + } + + try { + dataIS.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return personas; + } +} \ No newline at end of file diff --git a/src/dam/com/es/Persona.java b/src/dam/com/es/Persona.java new file mode 100644 index 0000000..c509985 --- /dev/null +++ b/src/dam/com/es/Persona.java @@ -0,0 +1,27 @@ +package dam.com.es; + +import java.io.Serializable; + +public class Persona implements Serializable{ + private String nombre; + private int edad; + public Persona(String nombre, int edad) { + this.nombre = nombre; + this.edad= edad; + } + public Persona() { + this.nombre=null; + } + public String getNombre() { + return nombre; + } + public void setNombre(String nombre) { + this.nombre = nombre; + } + public int getEdad() { + return edad; + } + public void setEdad(int edad) { + this.edad = edad; + } +}