public static String getHoyMasNDias(int numDias, String fechaEntrada)throws Throwable{
//formato de la fechaEntrada y será también la de salida
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String salida = "";
Calendar calendar = (Calendar) GregorianCalendar.getInstance();
calendar.setTime(sdf.parse(fechaEntrada));
for (int i = 0; i < numDias; i++) {
calendar.add(Calendar.DATE, 1);
}
return sdf.format(calendar.getTime());
}
Función que obtiene la fecha tras n dias
Etiquetas:
java
Añadir el punto de unidades de millar a un entero mediante un patrón
String numero = "8000";
//definición del patrón de salida
String numberFormat = "##,###";
DecimalFormat df = new DecimalFormat(numberFormat);
DecimalFormatSymbols punto = new DecimalFormatSymbols();
//Definimos el caracter que actuará como separador
punto.setDecimalSeparator('.');
df.setDecimalFormatSymbols(punto);
//aplicación de patron
String nuevoNumero = df.format( Double.parseDouble(numero));
Etiquetas:
java
invocación de métodos
Pequeño ejemplo de como invocar métodos java a partir del nombre de la clase, nombre del método, tipos de parámetros de entrada y salida.
import java.lang.reflect.Method;
public class Start {
/*Para el correcto funcionamiento de este ejemplo debe existir un paquete y una clase llamadas "class_.Test", esta clase debe tener un atributo llamado "nombre" de tipo "String" con un método llamado "getNombre" y otro llamado "setNombre"*/
public static void main(String[] args) throws Throwable {
Class tiposParametrosDelMetodoSetter[] = {Class.forName("java.lang.String")};
Class claseVO = Class.forName("class_.Test");
Object objetoClaseVO = claseVO.newInstance();
Object[] valoresParametrosDelMetodoSetter = {"test setter string"};
String nombreMetodoSetterPorNombreAtributo = "set"+capitalize("nombre");
Method metodoSetter = claseVO.getDeclaredMethod(nombreMetodoSetterPorNombreAtributo, tiposParametrosDelMetodoSetter);
metodoSetter.invoke(objetoClaseVO, valoresParametrosDelMetodoSetter);
System.out.println("Get desde casting al objeto"+((Test) objetoClaseVO).getNombre());
String nombreMetodoGetterPorNombreAtributo = "get"+capitalize("nombre");
Method metodoGetter = claseVO.getDeclaredMethod(nombreMetodoGetterPorNombreAtributo, null);
String salida = (String)metodoGetter.invoke(objetoClaseVO, null);
System.out.println("Get desde invoke del getter"+salida);
}
public static String capitalize(String s) {
if (s == null || s.length() == 0)
return s;
else
return s.substring(0, 1).toUpperCase() + s.substring(1);
}
Etiquetas:
java
comprimir lista ficheros con nuevo nombre
public static void comprimirListaFicherosConNuevaRutaNombre(String rutaTemporalZIP, Hashtable rutasFicherosyNuevoNombre){
System.out.println(rutasFicherosyNuevoNombre.toString());
int BUFFER = 2048;
try{
rutaTemporalZIP = rutaTemporalZIP.replace('\\', '/');
//creo la ruta.
String rutaFolderZip = extraerRutaFicheroDeRutaCompleta(rutaTemporalZIP);
new File(rutaFolderZip).mkdirs();
BufferedInputStream origin = null;
FileOutputStream dest = new FileOutputStream(rutaTemporalZIP);
ZipOutputStream out = new ZipOutputStream( new BufferedOutputStream(dest));
// metodo de compresión
//out.setMethod(ZipOutputStream.DEFLATED);
byte data[] = new byte[BUFFER];
Enumeration enumerationRutas = rutasFicherosyNuevoNombre.keys();
ArrayList listRutas = Collections.list(enumerationRutas);
for(Iterator itr=listRutas.iterator(); itr.hasNext(); ){
String rutaFichero = (String) itr.next();
rutaFichero = rutaFichero.replace('\\', '/');
String nuevoNombreFichero = (String) rutasFicherosyNuevoNombre.get(rutaFichero);
ZipEntry entry;
FileInputStream fi = new FileInputStream(rutaFichero);
origin = new BufferedInputStream(fi, BUFFER);
entry = new ZipEntry(nuevoNombreFichero);
out.putNextEntry(entry);
int count;
while((count = origin.read(data, 0, BUFFER))!= -1){
out.write(data, 0, count);
}
origin.close();
}
out.close();
}
catch(IOException e){
e.printStackTrace();
}
}
Etiquetas:
java
enviarMail
public static void enviarMailAdjuntos(ArrayList listaRutasAdjuntos, Properties props, String asunto, String mensaje) {
try{
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
// Asunto (opción de parametrizar en el properties)
message.setSubject(asunto);
// Se compone la parte del texto
BodyPart textoMensaje = new MimeBodyPart();
textoMensaje.setText(mensaje);
// Una MultiParte para agrupar texto y adjunto.
MimeMultipart multiParte = new MimeMultipart();
multiParte.addBodyPart(textoMensaje);
// Añadir adjuntos
for(Iterator itr = listaRutasAdjuntos.iterator(); itr.hasNext();){
String rutaFicheroAdjunto = (String)itr.next();
rutaFicheroAdjunto = rutaFicheroAdjunto.replace('\\', '/');
// Se compone el adjunto
BodyPart adjunto = new MimeBodyPart();
adjunto.setDataHandler(new DataHandler(new FileDataSource(rutaFicheroAdjunto)));
adjunto.setFileName(rutaFicheroAdjunto.substring(rutaFicheroAdjunto.lastIndexOf("/")+1 ));
multiParte.addBodyPart(adjunto);
}
// Contenido (mensaje + adjuntos)
message.setContent(multiParte);
// Quien envia el correo
message.setFrom(new InternetAddress(props.getProperty("mail.smtp.user")));
// A quien va dirigido (Pueden ser varios)
String[] direccionesDestino = props.getProperty("mail.smtp.direccionDestino").split(",");
ArrayList listaDireccionesDestino = new ArrayList(Arrays.asList(direccionesDestino));
for(int i=0; i< listaDireccionesDestino.size(); i++){
String direccionCorreo = (String)listaDireccionesDestino.get(i);
if(direccionCorreo != null){
message.addRecipient(Message.RecipientType.TO, new InternetAddress(direccionCorreo.trim()));
}
}
// Configuro servicio y propiedades
Transport t = session.getTransport("smtp");
t.connect(props.getProperty("mail.smtp.host"),props.getProperty("mail.smtp.user"),props.getProperty("mail.smtp.pass") );//ojo con la pass
t.sendMessage(message,message.getAllRecipients());
t.close();
}
catch (MessagingException e) {
e.printStackTrace();
}
}
Etiquetas:
java
FileUpload
http://www.javahispano.org/contenidos/es/como_desarrollar_un_fileupload_con_el_metodo_post/
http://forum.java.sun.com/thread.jspa?threadID=414276&start=15
http://www.proactiva-calidad.com/java/servlets/cargaArchivos.html
Etiquetas:
java
stringXmlToHD
public static void stringXmlToHD2(String xml, String rutaFicheroDestino) throws IOException{
ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
int BUFFER_SIZE = 1024;
FileOutputStream out = new FileOutputStream(rutaFicheroDestino);
byte[] buffer= new byte[BUFFER_SIZE];
int r;
while ((r = is.read(buffer)) > -1 ) {
out.write(buffer, 0, r);
}
out.flush();
out.close();
}
Etiquetas:
java
Día de la semana de una fecha
// fechaPortada formato dd/mm/aaaa
public String getFechaPortada(String fechaPortada){
String [] fechas = fechaPortada.split("/");
Calendar calendar = Calendar.getInstance();
int dia = Integer.parseInt(fechas[0]);
int mes = Integer.parseInt(fechas[1]);
int anio = Integer.parseInt(fechas[2]);
// ojo el mes 0 es enero
calendar.set(anio, mes-1, dia);
int diaC = calendar.get(Calendar.DAY_OF_WEEK); //dia de la semana
diaC = diaC - 1; // ojo en el formato americano 1 = Domingo
if(diaC == 0){
diaC = 7;
}
String dia_final = this.getDia(diaC);
String mes_final = this.getMes(mes);//getMes contiene un array con los mese en español
return dia_final+", "+Integer.parseInt(fechas[0])+" de "+mes_final+" de "+fechas[2];
}
Etiquetas:
java
Fecha con formato
public String fechaFichero(){
long date = pathFichero.lastModified();
Date d = new Date(date);
try {
SimpleDateFormat sd= new SimpleDateFormat("dd/MM/yyyy, HH:mm");
return sd.format(d);
}
catch (IllegalArgumentException e) {
System.out.println("Problemas al obtener la fecha del fichero .rdy");
return "";
}
}
Etiquetas:
java
Busqueda por patrones
String pattern = "("+ paginaActualKey +")(\\d)";//creo plantilla creando 2 grupos (..)(..)
Pattern p = Pattern.compile(pattern); //asigno plantilla
Matcher m = p.matcher(query_string); //
//Si encuentro algo rocorro los resultados
if (m.find()) {
String key = m.group(1); //resultado
String value = m.group(2); //
}
Etiquetas:
java
cargar properties externo al .jar
InputStream oInputStream = this.getClass().getClassLoader().getResourceAsStream(pathRelativo); //../../test.properties
Properies pro = new Properties();
pro = oProperties.load(oInputStream);
Etiquetas:
java
inputStreamToHD
public static void inputStreamToHD(InputStream is, String rutaFicheroDestino) throws IOException{
int BUFFER_SIZE = 1024;
FileOutputStream out = new FileOutputStream(rutaFicheroDestino);
byte[] buffer= new byte[BUFFER_SIZE];
int r;
while ((r = is.read(buffer)) > -1 ) {
out.write(buffer, 0, r);
}
out.flush();
out.close();
}
Etiquetas:
java
HDXMLToString2
public static String HDXMLToString2(String rutaFichero) throws IOException{
InputStreamReader in= new InputStreamReader (new FileInputStream(rutaFichero), "UTF-8");
StringBuffer sBuffer = new StringBuffer();
char[] buffer= new char[1];
while (in.read(buffer) > -1){
sBuffer.append(buffer);
}
in.close();
return sBuffer.toString();
}
Etiquetas:
java
inputStreamToString
public static String inputStreamToString(InputStream fis) throws IOException{
StringBuffer buffer = new StringBuffer();
InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); //o la codificación del XML
Reader in = new BufferedReader(isr);
int ch;
while ((ch = in.read()) > -1) {
buffer.append((char)ch);
}
in.close();
isr.close();
return buffer.toString();
}
Etiquetas:
java
inputStreamToByteArray
public static byte[] inputStreamToByteArray(InputStream is) throws IOException{
if (is == null){
return null;
}
else{
int lBufferSize = 1024;
byte[] lByteBuffer = new byte[lBufferSize];
int lBytesRead = 0;
int lTotbytesRead = 0;
ByteArrayOutputStream lByteArrayOutputStream = new ByteArrayOutputStream(lBufferSize*2);
while ((lBytesRead = is.read(lByteBuffer)) != -1){
lTotbytesRead += lBytesRead;
lByteArrayOutputStream.write(lByteBuffer, 0, lBytesRead);
}
byte [] lDataBytes = lByteArrayOutputStream.toByteArray();
return lDataBytes;
}
}
Etiquetas:
java