sábado, 21 de abril de 2012

Java una clase le archivos de directorios y busca palabras en archivos


import java.io.*;
import java.util.Calendar;

class LeeArchivo {
public static void main(String [] arg)
 {
File archivo = null;
try {
//archivo = new File("/home/heli/projava/2012012021-dbJal.log");//"archivo.txt" es el archivo que va a leer
String linea;
//String subcadena = "ORA-";
String [] words = {"ORA-","EXP-"};

       Calendar calendar = Calendar.getInstance();
       int anio_ = calendar.get(Calendar.YEAR);
       int mes_ = calendar.get(Calendar.MONTH)+1;
       int dia_ = calendar.get(Calendar.DAY_OF_MONTH);
System.out.print("año : " + anio_ + " mes: " + mes_ + " dia : " + dia_ + " \n");



//Muestra los archivos en el directorio mencionados
String sDirectorio = "/home/heli/projava/";
File f = new File(sDirectorio);

if (f.exists())
{ // Directorio existe
//System.out.println ("El directorio Existe");
}
else { //Directorio no existe
System.out.println ("El directorio NO existe");
return;
}

File[] ficheros = f.listFiles();
String nombreArchivo ="";
for (int x=0;x<ficheros.length;x++){
nombreArchivo=ficheros[x].getName();
if (nombreArchivo.indexOf("201201")>=0 ) {

System.out.println(" Leyendo archivo : " + nombreArchivo + " \n ");
//Busca palabra coincidente dentro de una linea
FileReader fr = new FileReader (nombreArchivo);
BufferedReader br = new BufferedReader(fr);
//int i,j,aux=0;

while((linea=br.readLine())!=null) {
//busca hora de inicio
if( linea.indexOf("Inicio de Respaldo en Servidor") >= 0  ) {
System.out.print("\n largo : " + linea.length() + " \n");
linea =linea.replace("/"," ") ;

System.out.print(linea + "\n ");
                                                        System.out.print("fecha inicial:" + linea.substring(linea.length()-19, linea.length()) + "\n" );

}

if( linea.indexOf("Termino de Respaldo en Servidor") >= 0  ) {
System.out.print( " fecha final: " +  linea.substring(linea.length()-19, linea.length()) + "\n" );
}

if( (linea.indexOf(words[0]) >= 0) ||  (linea.indexOf(words[1]) >= 0) ) {
System.out.print(linea + "\n");
}
else
{
//System.out.print("NO");
}
}
fr.close();
}
}


  }
catch(IOException a){
System.out.println(a);
 }
 }
}