Problème d'initialisiation d'une variable
Bonjour,
Je réalise un programme permettant de surveiller des passerelles entre logiciel.
Le but du soft est simple, vérifier si dans un dossier nous avons des fichier arrivant d'un autre soft si le nombre de fichier ne bouge pas cela veut dire que la passerelle ne fonctionne plus.
pour cela j'ai créer une classe avec une methode qui me renvoie le nombre de fichier du répertoire. puis toutes les 5 sec (timer du thread qui lance la classe), je vérifie si le nombre de fichier à été modifié. Mon problème est le suivant j'initialise 2 variable au démarrage une lecture qui stock le nombre de fichier puis une autre lastLecture qui doit sauvegarder la derniére lecture je compare les 2 si == la passerelle et arrêter j'envoie un mail si != je met la variable lastLecture = lecture le problème c que à la fin de la methode, aprés avoir copier la valeurs de la dernière lecture ma variable ce réinitialise a 1 sont état de lancement ai lieu de garder la valeure copier de la derniére lecture. Merci pour votre aide je ne m'en sort pas malgré bcp de recherche, je viens juste de reprendre le dev Java dc j'ai oublié quelque rudiment du langage. (je vous met mon code)
Code:
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
|
// Classe effectuant le traitement ci-dessus.
import java.io.*;
import java.util.*;
public class HprimLabo {
int resultatLecture = 0;
int lastLecture = 1 ;
int lecture =0;
int verificationFichier() throws FileNotFoundException{
//Création des objets
File file = new File ("c:/count"); //Instance File pour vérification du repertoire.
//Fin création objet
// Je teste si la ressource et dispo. !!! pour ressource réseau
if (!file.exists())
throw new FileNotFoundException(); //gestion execption si la ressource n'est pas up
resultatLecture = file.list().length;
//System.out.println(resultatLecture);
return (resultatLecture);
}
//Methode appliquer
void verifHprimeLabo() throws FileNotFoundException{
System.out.println(lastLecture);
lecture = verificationFichier();
System.out.println("lecture = " +lecture);
if (this.lecture == lastLecture){
//System.out.println("Last lecture = " +lastLecture);
System.out.println("Last lecture = lecture ");
//Envoie d'email la passerelle et tombé.
SendMail alerte = new SendMail();
alerte.envoyerMail();
}
if(lastLecture!= lecture){
//System.out.println("Last lecture = " +lastLecture);
System.out.println("Last lecture != Lecture");
lastLecture = this.lecture;
System.out.println(this.lastLecture);
}
}
} |
Contournement du problème
Bon j'ai contourné le pb en sauvegardant la lecture ds un fichier cf code
Mais si quelqu'un veut m'expliquer le pb des variable c avec plaisir
++ Jul
Code:
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
import java.io.*;
import java.util.*;
public class HprimLabo {
int resultatLecture = 0;
int lastLecture = lireSauvegarde();
int lecture =0;
int verificationFichier() throws FileNotFoundException{
//Création des objets
File file = new File ("c:/count"); //Instance File pour vérification du repertoire.
//Fin création objet
// Je teste si la ressource et dispo. !!! pour ressource réseau
if (!file.exists())
throw new FileNotFoundException(); //gestion execption si la ressource n'est pas up
resultatLecture = file.list().length;
//System.out.println(resultatLecture);
return (resultatLecture);
}
void sauvegardeLastLecture() throws IOException{
FileOutputStream logHprimTxt = new FileOutputStream("c:/count/logData/log.txt",false);
PrintStream ecrireFichier = new PrintStream(logHprimTxt);
ecrireFichier.println(resultatLecture);
ecrireFichier.close();
logHprimTxt.close();
}
int lireSauvegarde(){
InputStreamReader flog;
LineNumberReader llog;
String myLine = null;
int sauv = 0;
try{
flog = new InputStreamReader(new FileInputStream("c:/count/logData/log.txt"));
llog = new LineNumberReader(flog);
while ((myLine = llog.readLine()) != null) {
// --- Affichage de la ligne lu depuis le fichier
System.out.println("Ligne : "+myLine);
sauv = Integer.parseInt(myLine);
}
}catch (Exception e){
// --- Gestion erreur lecture du fichier (fichier non existant, illisible, etc.)
System.err.println("Error : "+e.getMessage());
}
System.out.println(myLine);
return sauv;
}
//Methode appliquer
void verifHprimeLabo() throws IOException{
//lireSauvegarde();
System.out.println(lastLecture);
lecture = verificationFichier();
System.out.println("lecture = " +lecture);
if (this.lecture == lastLecture){
//System.out.println("Last lecture = " +lastLecture);
System.out.println("Last lecture = lecture ");
//Envoie d'email la passerelle et tombé.
SendMail alerte = new SendMail();
alerte.envoyerMail();
}
if(lastLecture!= lecture){
//System.out.println("Last lecture = " +lastLecture);
System.out.println("Last lecture != Lecture");
//lastLecture = this.lecture;
sauvegardeLastLecture();
System.out.println(this.lastLecture);
}
}
} |