Bonjour,
J'aurais besoin d'un petit coup de main siouplait.
je suis en train d'écrire une appli java qui parfois enregistre dans un fichier des comentaires.
Pour des raisons, qui serait longues à expliquer, j'ai besoin que cette écriture se fasse via une seule méthode static (j'ai choisi write(texteAEcrire).
Donc nous voila ici, j'ai rédiger une classe
mais elle ne répond pas exactement à mes attentes dans la mesure où je suis obligé, dans ma classe principale de faire appel à Log.close().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.datalion.zsamurai.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Calendar; import java.util.GregorianCalendar; public class Log { private static Log instance = null; private String path; private File file; private FileWriter writer; private Log(String uri) throws IOException { this.path = "/var/log/"; String[] name = new File (".").getCanonicalPath().split("/"); this.path+=name[name.length-1]; this.path+="/"; if(uri==null) { this.path += Date.getDate('-')+".log"; } else { this.path+=uri+".log"; } System.out.println(this.path); this.file=new File(this.path); this.writer= new FileWriter(this.file,this.file.exists()); } public static Log getInstance(String uri) throws IOException { if(Log.instance == null) { Log.instance = new Log(uri); } return Log.instance; } public static void write(String uri, String str) throws IOException { Log.getInstance(uri).writer.write(str+"\n"); } public static void close(String uri) throws IOException { Log.getInstance(uri).writer.flush(); } }
Or comme mes besoins le spécifie, j'ai besoin de ne pas faire appel à cette méthode.
Y a t'il moyen de définir une méthode qui soit appelé automatiquement (genre un destructeur()) ?
Enfait, j'ai choisi java parce que j'avais déjà des classes me permettant de parser des flux HTML, par exemple. Mais dans d'autres langages, en php par exemple, je peux faire en sorte de ne pas faire appel à cet méthode.
PS : lorsque je ne fais pas appel à la méthodele fichier est créer mais pas le contenu (pas l'écriture dans le fichier)
Code : Sélectionner tout - Visualiser dans une fenêtre à part close()
Partager