Skip to content

Commit c705e50

Browse files
committed
#12 java
1 parent 6c43093 commit c705e50

File tree

1 file changed

+195
-0
lines changed

1 file changed

+195
-0
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
import java.io.*;
2+
import java.util.*;
3+
import javax.xml.parsers.*;
4+
import javax.xml.transform.*;
5+
import javax.xml.transform.dom.*;
6+
import javax.xml.transform.stream.*;
7+
import org.w3c.dom.*;
8+
import org.json.simple.*;
9+
import org.json.simple.parser.*;
10+
11+
public class eulogioep {
12+
public static void main(String[] args) {
13+
// Datos de ejemplo
14+
String nombre = "Juan";
15+
int edad = 30;
16+
String fechaNacimiento = "1993-05-15";
17+
List<String> lenguajesProgramacion = Arrays.asList("Java", "Python", "JavaScript");
18+
19+
// Crear y mostrar archivo XML
20+
crearArchivoXML(nombre, edad, fechaNacimiento, lenguajesProgramacion);
21+
System.out.println("Contenido del archivo XML:");
22+
mostrarContenidoArchivo("datos.xml");
23+
24+
// Crear y mostrar archivo JSON
25+
crearArchivoJSON(nombre, edad, fechaNacimiento, lenguajesProgramacion);
26+
System.out.println("\nContenido del archivo JSON:");
27+
mostrarContenidoArchivo("datos.json");
28+
29+
// Borrar archivos
30+
borrarArchivo("datos.xml");
31+
borrarArchivo("datos.json");
32+
33+
// DIFICULTAD EXTRA
34+
// Crear archivos nuevamente para la lectura
35+
crearArchivoXML(nombre, edad, fechaNacimiento, lenguajesProgramacion);
36+
crearArchivoJSON(nombre, edad, fechaNacimiento, lenguajesProgramacion);
37+
38+
// Leer y transformar datos
39+
Persona personaXML = leerXML("datos.xml");
40+
Persona personaJSON = leerJSON("datos.json");
41+
42+
System.out.println("\nDatos leídos del XML:");
43+
System.out.println(personaXML);
44+
System.out.println("\nDatos leídos del JSON:");
45+
System.out.println(personaJSON);
46+
47+
// Borrar archivos nuevamente
48+
borrarArchivo("datos.xml");
49+
borrarArchivo("datos.json");
50+
}
51+
52+
// Método para crear el archivo XML
53+
public static void crearArchivoXML(String nombre, int edad, String fechaNacimiento, List<String> lenguajesProgramacion) {
54+
try {
55+
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
56+
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
57+
58+
// Crear el elemento raíz
59+
Document doc = docBuilder.newDocument();
60+
Element rootElement = doc.createElement("persona");
61+
doc.appendChild(rootElement);
62+
63+
// Agregar elementos hijos
64+
Element nombreElement = doc.createElement("nombre");
65+
nombreElement.setTextContent(nombre);
66+
rootElement.appendChild(nombreElement);
67+
68+
Element edadElement = doc.createElement("edad");
69+
edadElement.setTextContent(String.valueOf(edad));
70+
rootElement.appendChild(edadElement);
71+
72+
Element fechaNacimientoElement = doc.createElement("fechaNacimiento");
73+
fechaNacimientoElement.setTextContent(fechaNacimiento);
74+
rootElement.appendChild(fechaNacimientoElement);
75+
76+
Element lenguajesElement = doc.createElement("lenguajesProgramacion");
77+
for (String lenguaje : lenguajesProgramacion) {
78+
Element lenguajeElement = doc.createElement("lenguaje");
79+
lenguajeElement.setTextContent(lenguaje);
80+
lenguajesElement.appendChild(lenguajeElement);
81+
}
82+
rootElement.appendChild(lenguajesElement);
83+
84+
// Escribir el contenido en un archivo XML
85+
TransformerFactory transformerFactory = TransformerFactory.newInstance();
86+
Transformer transformer = transformerFactory.newTransformer();
87+
DOMSource source = new DOMSource(doc);
88+
StreamResult result = new StreamResult(new File("datos.xml"));
89+
transformer.transform(source, result);
90+
91+
} catch (Exception e) {
92+
e.printStackTrace();
93+
}
94+
}
95+
96+
// Método para crear el archivo JSON
97+
@SuppressWarnings("unchecked")
98+
public static void crearArchivoJSON(String nombre, int edad, String fechaNacimiento, List<String> lenguajesProgramacion) {
99+
JSONObject jsonObject = new JSONObject();
100+
jsonObject.put("nombre", nombre);
101+
jsonObject.put("edad", edad);
102+
jsonObject.put("fechaNacimiento", fechaNacimiento);
103+
jsonObject.put("lenguajesProgramacion", lenguajesProgramacion);
104+
105+
try (FileWriter file = new FileWriter("datos.json")) {
106+
file.write(jsonObject.toJSONString());
107+
} catch (IOException e) {
108+
e.printStackTrace();
109+
}
110+
}
111+
112+
// Método para mostrar el contenido de un archivo
113+
public static void mostrarContenidoArchivo(String nombreArchivo) {
114+
try (BufferedReader br = new BufferedReader(new FileReader(nombreArchivo))) {
115+
String linea;
116+
while ((linea = br.readLine()) != null) {
117+
System.out.println(linea);
118+
}
119+
} catch (IOException e) {
120+
e.printStackTrace();
121+
}
122+
}
123+
124+
// Método para borrar un archivo
125+
public static void borrarArchivo(String nombreArchivo) {
126+
File archivo = new File(nombreArchivo);
127+
if (archivo.delete()) {
128+
System.out.println("El archivo " + nombreArchivo + " ha sido borrado.");
129+
} else {
130+
System.out.println("No se pudo borrar el archivo " + nombreArchivo);
131+
}
132+
}
133+
134+
// DIFICULTAD EXTRA
135+
136+
// Clase personalizada para almacenar los datos
137+
static class Persona {
138+
String nombre;
139+
int edad;
140+
String fechaNacimiento;
141+
List<String> lenguajesProgramacion;
142+
143+
@Override
144+
public String toString() {
145+
return "Persona{" +
146+
"nombre='" + nombre + '\'' +
147+
", edad=" + edad +
148+
", fechaNacimiento='" + fechaNacimiento + '\'' +
149+
", lenguajesProgramacion=" + lenguajesProgramacion +
150+
'}';
151+
}
152+
}
153+
154+
// Método para leer el archivo XML y convertirlo a la clase Persona
155+
public static Persona leerXML(String nombreArchivo) {
156+
Persona persona = new Persona();
157+
try {
158+
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
159+
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
160+
Document doc = dBuilder.parse(new File(nombreArchivo));
161+
doc.getDocumentElement().normalize();
162+
163+
persona.nombre = doc.getElementsByTagName("nombre").item(0).getTextContent();
164+
persona.edad = Integer.parseInt(doc.getElementsByTagName("edad").item(0).getTextContent());
165+
persona.fechaNacimiento = doc.getElementsByTagName("fechaNacimiento").item(0).getTextContent();
166+
167+
persona.lenguajesProgramacion = new ArrayList<>();
168+
NodeList lenguajesList = doc.getElementsByTagName("lenguaje");
169+
for (int i = 0; i < lenguajesList.getLength(); i++) {
170+
persona.lenguajesProgramacion.add(lenguajesList.item(i).getTextContent());
171+
}
172+
} catch (Exception e) {
173+
e.printStackTrace();
174+
}
175+
return persona;
176+
}
177+
178+
// Método para leer el archivo JSON y convertirlo a la clase Persona
179+
public static Persona leerJSON(String nombreArchivo) {
180+
Persona persona = new Persona();
181+
JSONParser parser = new JSONParser();
182+
183+
try (FileReader reader = new FileReader(nombreArchivo)) {
184+
JSONObject jsonObject = (JSONObject) parser.parse(reader);
185+
186+
persona.nombre = (String) jsonObject.get("nombre");
187+
persona.edad = ((Long) jsonObject.get("edad")).intValue();
188+
persona.fechaNacimiento = (String) jsonObject.get("fechaNacimiento");
189+
persona.lenguajesProgramacion = (List<String>) jsonObject.get("lenguajesProgramacion");
190+
} catch (Exception e) {
191+
e.printStackTrace();
192+
}
193+
return persona;
194+
}
195+
}

0 commit comments

Comments
 (0)