lunes, 31 de agosto de 2009

SimpleDateFormat

La clase SimpleDateFormat nos ayuda a mostrar las fechas en el formato que queramos o a reconstruirlas a partir de una cadena de texto.

Si queremos por ejemplo obtener un fecha en formto dd/mm/aaaa seri de la siguente forma:

SimpleDateFormat parsear = new SimpleDateFormat("dd/MM/yyyy");

pasear.format(fecha);

Donde fecha es la que vamos a formatear.

Podemos realizar otras funciones para mas información mirar en la API

jueves, 6 de agosto de 2009

Tipos de Threads

Existen varios tipos de threads que pueden aparecer en una aplicación:

* Threads completamente independientes, que realizan tareas no relacionadas. Como el caso de imprimir un documento.
* Threads que trabajan con una misma tarea, es decir se ayudan entre ellos, pero sin interferir ni intercambiar relación entre ellos. Por ejemplo, threads que colaboran en el producto de dos matrices, ocupándose cada una de ellas de calcular ciertas filas de la matriz producto.
* Threads que utilizan recursos de modo mutuamente exclusivo, aunque sin tener que coordinar sus actividades. Este ocurre en los threads que intentan leer o actualizar un registro en la base de datos.
* Threads que deben coordinar sus actividades, de modo que una de ellas no puede empezar o continuar hasta que la otra haya realizado su tarea. Un ejemplo muy conocido es el problema del productor-consumidor .

Threads

Los threads o hilos de ejecución son segmentos de código de un prograna que se ejecutan secuencialmente de modo independiente de las otras partes del programa.

Utilizamos los threads en un programa para aislar y sincronizar tareas.Cada hilo se encarga de una parte del programa, por ejemplo:
  • tranferencia de ficheros
  • pintar los graficos
  • conectar a la base de datos.

La clase Thread desciente de Object e implementa la interface Runnable y no es necesario importarlas a nuestro programa ya que se encuentran dentro del paquete java.lang.

Método sleep()

Este método le dice al Thread que duerma durante los milisegundos especificados entre sus paréntesis.

Se debería utilizar cuando se pretenda retrasar la ejecución del hilo.

El sleep() no consume recursos del sistema, mientras duerme el hilo, los demás hilos se siguen ejecutando sin problema alguno

viernes, 24 de julio de 2009

Leer Pdf desde Java

Vamos a utilizar la libreria PDFBox, que nos permite manejar diferntes tipos de PDF y convertir pdf a texto.

Mediante lineas de comando convertimos el pdf en un archivo de texto.

Aqui tenemos un ejemplo de una clase para Leer PDF

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.util.List;

import org.pdfbox.cos.COSDocument;
import org.pdfbox.pdfparser.
PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.pdmodel.PDDocumentInformation;
import org.pdfbox.util.PDFTextStripper;

public class LeerPDF {

PDFParser parser;
String parsedText;
PDFTextStripper pdfStripper;
PDDocument pdDoc;
COSDocument cosDoc;
PDDocumentInformation pdDocInfo;

// PDFTextParser Constructor
public LeerPDF() {
}

// Extract text from PDF Document
public String pdftoText(String fileName) {

//System.out.println("Parsing text from PDF file " + fileName + "....");
File f = new File(fileName);

if (!f.isFile()) {
System.out.println("File " + fileName + " does not exist.");
return null;
}

try {
parser = new PDFParser(new FileInputStream(f));
} catch (Exception e) {
System.out.println("Unable to open PDF Parser.");
return null;
}

try {
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
parsedText = pdfStripper.getText(pdDoc);
} catch (Exception e) {
System.out.println("An exception occured in parsing the PDF Document.");
e.printStackTrace();
try {
if (cosDoc != null) cosDoc.close();
if (pdDoc != null) pdDoc.close();
} catch (Exception e1) {
e.printStackTrace();
}
return null;
}
System.out.println("Done.");
return parsedText;
}

// Write the parsed text from PDF to a file
/* void writeTexttoFile(String pdfText, String fileName) {

System.out.println("\nWriting PDF text to output text file " + fileName + "....");
try {
PrintWriter pw = new PrintWriter(fileName);
pw.print(pdfText);
pw.close();
} catch (Exception e) {
System.out.println("An exception occured in writing the pdf text to file.");
e.printStackTrace();
}
System.out.println("Done.");
}*/

// Extracts text from a PDF Document and writes it to a text file
public static void main(String args[]) {

/* if (args.length != 2) {
System.out.println("Usage: java PDFTextParser ");
System.exit(1);
}*/

LeerPDF pdfTextParserObj = new LeerPDF();
//String pdfToText = pdfTextParserObj.pdftoText(args[0]);
String pdfToText = pdfTextParserObj.pdftoText("C:/datos/Java2.pdf");
System.out.println(pdfToText);

/* if (pdfToText == null) {
System.out.println("PDF to Text Conversion failed.");
}
else {
System.out.println("\nThe text parsed from the PDF Document....\n" + pdfToText);
// pdfTextParserObj.writeTexttoFile(pdfToText, args[1]);

pdfTextParserObj.writeTexttoFile(pdfToText, "C:/datos/Java2.txt");
}*/
}
}

jueves, 2 de julio de 2009

Jaxb

http://www.programacion.com/java/tutorial/jaxb/