Título: Ayuda con programa de java Publicado por: Kaminegame en 21 Julio 2020, 05:52 am Hola, tengo que hacer un programa de java que genere archivos xml y htm, estos serán llenados por medio de datos que ingresara el usuario desde la consola, el problema es que cuando cierro el programa y lo abro de nuevo, no añade los registros, reemplaza los registros viejos con registros nuevos
aquí el código: package actividad1; import java.util.Scanner; import java.util.ArrayList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; /** * * @author LENOVO */ public class Actividad1 { /** * @param args the command line arguments */ public static void main(String[] args) { String archivo = "datosjava"; String archivo2 = "datosjava2"; ArrayList nombre = new ArrayList(); ArrayList color = new ArrayList(); ArrayList animal = new ArrayList(); ArrayList cancion = new ArrayList(); ArrayList juego = new ArrayList(); ArrayList pais = new ArrayList(); Scanner leer = new Scanner(System.in); String name,colorf,animalf,cancionf,juegof,paisf; int op; do{ System.out.println("Nombre"); name = leer.next(); System.out.println("color preferido"); colorf = leer.next(); System.out.println("animal preferido"); animalf = leer.next(); System.out.println("cancion preferido"); cancionf = leer.next(); System.out.println("juego preferido"); juegof = leer.next(); System.out.println("pais preferido"); paisf = leer.next(); nombre.add(name); color.add(colorf); animal.add(animalf); cancion.add(cancionf); juego.add(juegof); pais.add(paisf); System.out.println("1.- para seguir 2.- para salir"); op = leer.nextInt(); }while(op!=2); try{ generate(archivo,nombre,color,animal,cancion,juego,pais); generate2(archivo2,nombre,color,animal,cancion,juego,pais); }catch (Exception e){} } private static void generate(String name, ArrayList<String> nombre, ArrayList<String> color, ArrayList<String> animal, ArrayList<String> cancion, ArrayList<String> juego, ArrayList<String> pais)throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); DOMImplementation implementation = builder.getDOMImplementation(); Document document = implementation.createDocument(null, name, null); document.setXmlVersion("1.0"); Element raiz = document.getDocumentElement(); for(int i=0;i<nombre.size();i++){ Element itemNode = document.createElement("ITEM"); Element nombreNode = document.createElement("nombre"); Text nodenombreVaule = document.createTextNode(nombre.get(i)); nombreNode.appendChild(nodenombreVaule); Element colorNode = document.createElement("color"); Text nodecolorVaule = document.createTextNode(color.get(i)); colorNode.appendChild(nodecolorVaule); Element animalNode = document.createElement("animal"); Text nodeanimalVaule = document.createTextNode(animal.get(i)); animalNode.appendChild(nodeanimalVaule); Element cancionNode = document.createElement("cancion"); Text nodecancionVaule = document.createTextNode(cancion.get(i)); cancionNode.appendChild(nodecancionVaule); Element juegoNode = document.createElement("juego"); Text nodejuegoVaule = document.createTextNode(juego.get(i)); juegoNode.appendChild(nodejuegoVaule); Element paisNode = document.createElement("pais"); Text nodepaisVaule = document.createTextNode(pais.get(i)); paisNode.appendChild(nodepaisVaule); itemNode.appendChild(nombreNode); itemNode.appendChild(colorNode); itemNode.appendChild(animalNode); itemNode.appendChild(cancionNode); itemNode.appendChild(juegoNode); itemNode.appendChild(paisNode); raiz.appendChild(itemNode); } Source source = new DOMSource(document); Result result = new StreamResult(new java.io.File(name+".xml")); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(source, result); } private static void generate2(String name, ArrayList<String> nombre, ArrayList<String> color, ArrayList<String> animal, ArrayList<String> cancion, ArrayList<String> juego, ArrayList<String> pais)throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); DOMImplementation implementation = builder.getDOMImplementation(); Document document = implementation.createDocument(null, name, null); document.setXmlVersion("1.0"); Element raiz = document.getDocumentElement(); for(int i=0;i<nombre.size();i++){ Element itemNode = document.createElement("table"); Element nombreNode = document.createElement("nombre"); Text nodenombreVaule = document.createTextNode(nombre.get(i)); nombreNode.appendChild(nodenombreVaule); Element colorNode = document.createElement("color"); Text nodecolorVaule = document.createTextNode(color.get(i)); colorNode.appendChild(nodecolorVaule); Element animalNode = document.createElement("animal"); Text nodeanimalVaule = document.createTextNode(animal.get(i)); animalNode.appendChild(nodeanimalVaule); Element cancionNode = document.createElement("cancion"); Text nodecancionVaule = document.createTextNode(cancion.get(i)); cancionNode.appendChild(nodecancionVaule); Element juegoNode = document.createElement("juego"); Text nodejuegoVaule = document.createTextNode(juego.get(i)); juegoNode.appendChild(nodejuegoVaule); Element paisNode = document.createElement("pais"); Text nodepaisVaule = document.createTextNode(pais.get(i)); paisNode.appendChild(nodepaisVaule); itemNode.appendChild(nombreNode); itemNode.appendChild(colorNode); itemNode.appendChild(animalNode); itemNode.appendChild(cancionNode); itemNode.appendChild(juegoNode); itemNode.appendChild(paisNode); raiz.appendChild(itemNode); } Source source = new DOMSource(document); Result result = new StreamResult(new java.io.File(name+".htm")); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(source, result); } } |