domingo, 16 de diciembre de 2012

Leer un archivo XML desde java

Para leer un archivo XML en java podemos usar la librería JDOM.


Para leer el archivo se puede hacer de la siguiente manera:
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;         // 
import org.jdom.Element;          // Librerías
import org.jdom.JDOMException;    // JDOM
import org.jdom.input.SAXBuilder; // 
...

public void cargarXml(){
//Se crea un SAXBuilder para poder parsear el archivo
SAXBuilder builder = new SAXBuilder();
File xmlFile = new File( "archivo.xml" );
try{

//Se crea el documento a traves del archivo
Document document = (Document) builder.build( xmlFile );

//Se obtiene la raiz 'tables'
Element rootNode = document.getRootElement();
//Se obtiene la lista de hijos de la raiz 'tables'
List list = rootNode.getChildren( "tabla" );
//Se recorre la lista de hijos de 'tables'
for ( int i = 0; i < list.size(); i++ ){
//Se obtiene el elemento 'tabla'
Element tabla = (Element) list.get(i);

//Se obtiene el atributo 'nombre' que esta en el tag 'tabla'
String nombreTabla = tabla.getAttributeValue("nombre");

System.out.println( "Tabla: " + nombreTabla );
//Se obtiene la lista de hijos del tag 'tabla'

List lista_campos = tabla.getChildren();
System.out.println( "\tNombre\t\tTipo\t\tValor" );

//Se recorre la lista de campos

for ( int j = 0; j < lista_campos.size(); j++ ){

//Se obtiene el elemento 'campo'
Element campo = (Element)lista_campos.get( j );
//Se obtienen los valores que estan entre los tags ''
//Se obtiene el valor que esta entre los tags ''
String nombre = campo.getChildTextTrim("nombre");
//Se obtiene el valor que esta entre los tags ''
String tipo = campo.getChildTextTrim("tipo");
//Se obtiene el valor que esta entre los tags ''
String valor = campo.getChildTextTrim("valor");
System.out.println( "\t"+nombre+"\t\t"+tipo+"\t\t"+valor);
}
}
}catch ( IOException io ) {
System.out.println( io.getMessage() );
}catch ( JDOMException jdomex ) {
System.out.println( jdomex.getMessage() );
}
}

martes, 11 de diciembre de 2012

Novedades java 7 Múltiples excepciones en un método

Siguiendo con las novedades de java 7, vamos a ver como tratar en un método la captura de varias excepciones.

Antes de java 7 el tratamiento se hacia añadiendo varios bloques catch, es decir de la siguiente manera:
public class Prueba1 {
  public static void main(String[] args){
    try {
      metodoExcepcion1();
      metodoExcepcion2();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (NumberFormatException e) {
      e.printStackTrace();

   }
  }
  static void metodoExcepcion1() throws IOException{}
  static void metodoExcepcion2() throws NumberFormatException {}
}
Con la utilización del bloque multicatch el mismo código quedaría de la siguiente forma:
try {
   exceptionMethod1();
   exceptionMethod2();
} catch (IOException | NumberFormatException e) {
   e.printStackTrace();
}

domingo, 9 de diciembre de 2012

Novedades java 7 Swicht con String

Antes de java 7 no era posible la utilización de String para realizar un Switch. Con la nueva versión de java sí es posible. Os mostramos un ejemplo de como sería:
String letra= "A";

switch (choice){
  case "A":
    System.out.println("Elegido letra A");
    break;
  case "B":
    System.out.println("Elegido letra B");
    break;
  case "C":
    System.out.println("Elegido letra C");
    break;
}


domingo, 25 de noviembre de 2012

HaspMap en javascript

Como crear y recorrer un HaspMap en javascript.

 Veamos un ejemplo de como crear un HaspMap con javascript
var myArray = new Array();
myArray['uno'] = 1;
myArray['dos'] = 2;
myArray['tres'] = 3;

Ahora veamos una manera de recorrer el HashMap recuperar la clave y el valor.
 // Muestra la clave y los valores.
for (var i in myArray) {
 alert('Clave : ' + i + ', Valor: ' + myArray[i]);
}

jueves, 22 de noviembre de 2012

Black friday, aplicaciones android


Gameloft por motivo de black friday ha bajado el precio de algunas de sus aplicaciones a 0,86 € por precio limitado desde el pasado jueves hasta el día de acción de gracias.
Podéis descargar las app desde el siguiente enlace:
Google Play:

Gameloft No ha sido la única en aplicar el descuento a sus aplicaciones, os dejo algunas aplicaciones que podréis comprar aprovechando el black friday:

AccuWeather Platinum [Regular: $2.99]
Sale: $0.99
Aftermath XHD – SALE [Regular: $5.99]
Sale: $2.99
Asteroid 2012 3D [Regular: $1.99]
Sale: $1.49
Azkend [Regular: $2.39]
Sale: $0.99
BackStab [Regular: $6.99]
Sale: $0.99
Babel Rising 3D [Regular: $4.99]
Sale: $0.99
BlackList Pro [Regular: $3.49]
Sale: $1.27
DocumentsToGo Full Version Key [Regular: $14.95]
Sale: $8.95
EnbornX [Regular: $1.93]
Sale: $0.99
GA 1: An Assassin in Orlandes [Regular: $5.99]
Sale: $0.99
GA2: Siege of the Necromancer [Regular: $3.99]
Sale: $0.99
GA3: Slaves of Rema [Regular: $5.99]
Sale: $0.99
GA4: Revenant Rising [Regular: $5.99]
Sale: $0.99
GA5:Catacombs of the Undercity [Regular: $5.99]
Sale: $0.99
GA6: Wizard from Tarnath Tor [Regular: $5.99]
Sale: $0.99
Gangstar Rio: City of Saints [Regular: $6.99]
Sale: $0.99
Jump Desktop (RDP & VNC) [Regular: $9.99]
Sale: $4.99 
My Backup Pro [Regular: $4.99]
Sale: $2.99
Mobi Calculator Pro [Regular: $3.49]
Sale Price: $2.99
Moodagent [Regular: $5.07]
Sale: $0.99
Memory Booster (Full Version) [Regular: $2.99]
Sale: $1.49
Majesty: Fantasy Kingdom Sim [Regular: $2.99]
Sale: $0.99
Need for Speed™ Most Wanted [Regular: $6.99]
Sale: $4.99
Neuroshima Hex [Regular: $2.99]
Sale: $0.99
ProCapture – camera + panorama [Regular: $1.99
Sale: $0.99
Quickoffice Pro (Office & PDF) [Regular: $14.99]
Sale: $0.99
RoByte – Remote for Roku [Regular: $2.99]
Sale: $0.99
Sonic 4 Episode II [Regular: $6.99]
Sale: $2.99
Sparkle [Regular: $2.39]
Sale: $1.29
Spirit HD – SALE [Regular: $2.99]
Sale: $1.49
Stand O’ Food® (Full) [Regular: $4.75]
Sale: $2.99
Scrubs: hidden object [Regular: $1.99]
Sale: $0.99
Smart RAM Booster Pro [Regular: $2.56]
Sale: $1.27
SwiftKey 3 Keyboard [Regular: $3.99]
Sale: $1.99
Startup Manager (Full Version) [Regular: $2.99]
Sale: $1.49
SplashID Safe for Android [Regular: $9.99]
Sale: $4.99
Tiny Diggers [Regular: $1.99]
Sale: $0.99
The Adventures of Tintin [Regular: $6.99]
Sale: $0.99
The Amazing Spider-Man [Regular: $6.99]
Sale: $0.99

Virtua Tennis™ Challenge [Regular: $4.99]
Sale: $1.99
THE KING OF FIGHTERS Android [Regular: $4.99]
Sale: $2.99
TileStorm HD – SALE [Regular: $3.99]
Sale: $1.99
Xelorians – Space Shooter [Regular: $2.50]
Sale: $0.99
Wisp [Regular: $2.84]
Sale: $0.99
90Droid ExtremeFitness Tracker [Regular: $3.49]
Sale: $0.99

StringBuffer vs StringBuilder

StringBuffer

StringBuffer es una clase que nos permite concatenar String de una manera simple y muy eficiente.

Veamos un ejemplo de como usarlo:

StringBuffer holamundoBuffer = new StringBuffer();
holamundoBuffer.append("Hola, ");
holamundoBuffer.append("mundo");

String holamundo = holamundoBuffer.toString();

La clase StringBuilder

StringBuilder es una clase en JDK 5, y es la clase recomendada para la concatenación de String. Es muy similar a la clase StringBuffer
Los métodos de StringBuilder no son sincronizados, por lo que tiene mejor rendimiento que StringBuffer. Es por esto por lo que se recomiendo usar este tipo, ya que sera más optimo para el rendimiento.
Veamos un ejemplo del uso StringBuilder:
StringBuilder holamundoBuilder = new StringBuilder();
holamundoBuilder.append("Hola, ");
holamundoBuilder.append("mundo");

String holamundo = holamundoBuilder.toString();

miércoles, 21 de noviembre de 2012

Recorrer un HaspMap con foreach


Teniendo un HashMap de este tipo
HashMap ht = new HashMap();
podemos utilizar un FOREACH para recorrer un HaspMap, para ellos haremos uso de Map.Entry, quedaría de la siguiente manera
for (Map.Entry elemento : ht.entrySet()) {
     System.out.println(elemento.getKey() + " _ " + elemento.getValue());
}