public Datos_DTO leer_Datos() {
   try {
     flujo_lectura.load(
         this.getClass().getResourceAsStream("/com/atrium/modelo/datos.properties"));
     datos.setTexto(flujo_lectura.getProperty("texto.etiqueta"));
   } catch (IOException e) {
     e.printStackTrace();
   }
   return datos;
 }
  public boolean escribir_Datos(Datos_DTO datos_nuevos) {
    boolean valido = true;
    try {
      // LEEMOS EL XML Y SE CREA LA ESTRUCTURA DOM
      DocumentBuilderFactory fact_dom = DocumentBuilderFactory.newInstance();
      DocumentBuilder lector = fact_dom.newDocumentBuilder();
      // OBTENEMOS EL OBJETO QUE TIENE SU CONTENIDO PARA MODIFICARLO
      Document documento_DOM =
          lector.parse(this.getClass().getResource("/com/atrium/vista/datos.xml").getFile());

      // COGEMOS LA ETIQUETA QUE CONTIENE EL ATRIBUTO A CAMBIAR
      Node elemento_xml = documento_DOM.getElementsByTagName("nombre").item(0);
      elemento_xml.setTextContent(datos_nuevos.getNombre());

      elemento_xml = documento_DOM.getElementsByTagName("apellido").item(0);
      elemento_xml.setTextContent(datos_nuevos.getApellido());

      elemento_xml = documento_DOM.getElementsByTagName("calle").item(0);
      elemento_xml.setTextContent(datos_nuevos.getCalle());

      elemento_xml = documento_DOM.getElementsByTagName("ciudad").item(0);
      elemento_xml.setTextContent(datos_nuevos.getCiudad());

      // ESCRIBIMOS EL DOCUMENTO MODIFICADO
      TransformerFactory fact = TransformerFactory.newInstance();
      Transformer flujo_escritura = fact.newTransformer();
      // QUE CONTENIDO VAMOS A ESCRIBIR
      DOMSource entrada_datos = new DOMSource(documento_DOM);
      // DONDE LO VAMOS A ESCRIBIR
      StreamResult apuntador =
          new StreamResult(this.getClass().getResource("/com/atrium/vista/datos.xml").getFile());
      // ESCRIBIMOS
      flujo_escritura.transform(entrada_datos, apuntador);

    } catch (Exception e) {
      valido = false;
    }
    return valido;
  }
 @Override
 public void characters(char[] texto, int inicio, int tamaño) throws SAXException {
   String texto_eti = new String(texto, inicio, tamaño);
   if (texto_eti.indexOf("\n") == -1) {
     if (etiqueta_leida.equals("fecha")) {
       datos.setFecha(texto_eti);
     }
     if (etiqueta_leida.equals("autor")) {
       datos.setAutor(texto_eti);
     }
     if (etiqueta_leida.equals("nombre")) {
       datos.setNombre(texto_eti);
     }
     if (etiqueta_leida.equals("apellido")) {
       datos.setApellido(texto_eti);
     }
     if (etiqueta_leida.equals("calle")) {
       datos.setCalle(texto_eti);
     }
     if (etiqueta_leida.equals("ciudad")) {
       datos.setCiudad(texto_eti);
     }
   }
 }