1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| try{
String f = "/Users/Lazyeight/Documents/workspace/LogRod/exim_mainlog"; // mon fichier
String chaine = ""; //initialisation des variables
String ligne;
InputStream ips=new FileInputStream(f); //déclarations des objets de lecture
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
FileWriter fw = new FileWriter("TEST3.csv", false);
BufferedWriter output = new BufferedWriter(fw);
List<TraceEmail> list = new ArrayList<TraceEmail>(); //déclaration de notre ArrayList
while ((ligne=br.readLine())!=null){ //tant qu'il y a des lignes
chaine = ligne;
String[] champ = chaine.split(" "); //on stocke chaque bloc séparé par le caractère espace
TraceEmail trace = new TraceEmail(); // le constructeur
if (champ[2].contains("1S") && champ[3].contains("<=") || champ[3].contains("->") || champ[3].contains("=>")) {
trace.setDmail(champ[0]);
trace.setHmail(champ[1]);
trace.setIdmail(champ[2]);
if (champ[3].contains("<=")) {
/* if (! champ[8].contains("S=")) {
trace.setTaille(champ[8]);
} else trace.setTaille(champ[9]);
*/ //Pour cette partie ça ne fonctionne pas car forcement sur chacune de mes lignes je n'ai pas forcement de champ 8 et 9 du coup j'ai un jolie OutOfBound :'( une idée de comment je pourrais procéder ?
trace.setDirection("expediteur");
}
else if (champ[3].contains("=>") || champ[3].contains("->") ) {
trace.setDirection("destinataire");
}
if (champ[4].contains("@")) //ne rien faire et traiter tab[6]
{
trace.setAmail(champ[4]);
} else if (champ[5].contains("@"))
{ trace.setAmail(champ[5]); }
else continue;
list.add(trace);
Collections.sort(list);
} else { continue; }
}
output.append("Date"+";"+"Heure"+";"+"Id"+";"+"Direction"+";"+"Adresse Mail"+";"+"Taille"+"\n");
for(TraceEmail mail : list) {
output.write(mail.getDmail() +";"+ mail.getHmail() +";"+ mail.getIdmail() +";"+ mail.getDirection() +";"+ mail.getAmail() +";"+ mail.getTaille() + "\n");
output.flush();
}
System.out.println("Fichier Crée");
br.close();
output.close(); |