bonjour,
J'ai créé une classe qui me permet d'ouvrir un fichier de configuration et d'en récupérer les valeurs. Voici mon code :
=> Mon code fonctionne mais étant débutant en Java, j'aurais vouloir savoir si je n'avais pas fait de boulette (pour ne pas prendre de mauvaises habitudes dès le départ) : est-ce bon ?
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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233 import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ConfigFile extends Object { private File pIniFile; private File pHexFileSrc; private File pHexFileOut; private Boolean pDebugMode; private File pMchFileOut1; private File pMchFileOut2; private String pModuleName; private File pBexFileSrc; // constructeur 1 public ConfigFile(){ super(); // appel le constructuer de la classe héritée pIniFile = new File("config.ini"); initVar(); run(); } // constructeur 2 public ConfigFile(File file){ super(); // appel le constructuer de la classe héritée pIniFile = file; initVar(); run(); } // initialisation avec les valeurs par défaut private void initVar(){ pHexFileSrc = (new File("data\\in.hex")); pHexFileOut = new File("data\\out.hex"); pDebugMode = false; pMchFileOut1 = new File("data\\out1.MCH"); pMchFileOut2 = new File("data\\out2.MCH"); pModuleName = "192.168.1.1"; pBexFileSrc = new File("data\\in.bex"); } // ******************************************* // lancement du traitement private void run(){ try { Scanner scn = new Scanner (pIniFile); // ouverture du fichier // lecture ligne par ligne du fichier while (scn.hasNextLine()){ String line = scn.nextLine(); // récupère la ligne line = line.replace(' ',' '); // remplace tabulation par espace line = line.trim(); // suppression des espaces en debut et fin de chaine if (line.length() !=0){ // vérifie que la ligne n'est pas vide // test si la chaine commence par une lettre en majuscule // => si ce n'est pas le cas, la chaine ne sera pas traitée if(('A' <= line.charAt(0)) && (line.charAt(0) <= 'Z')){ String[] tabStr = line.split("="); // vérifier que le split a renvoyé deux chaines // => si le nombre n'est pas bon, on ne traite pas la chaine if (tabStr.length == 2){ //System.out.println("ConfigFile : commande trouvée"); String strTmp = tabStr[0].trim(); if(strTmp.equals("HEXFILE_SOURCE")){ strTmp = tabStr[1].trim(); pHexFileSrc = (new File("data\\" + strTmp)); } else if(strTmp.equals("HEXFILE_OUT")){ strTmp = tabStr[1].trim(); pHexFileOut = new File("data\\" + strTmp); } else if(strTmp.equals("DEBUG_MODE")){ strTmp = tabStr[1].trim(); if (strTmp.toUpperCase().equals("TRUE")){ pDebugMode = true; } else { pDebugMode = false; } } else if(strTmp.equals("MCH_FILE1_OUT")){ strTmp = tabStr[1].trim(); pMchFileOut1 = new File("data\\" + strTmp); } else if(strTmp.equals("MCH_FILE2_OUT")){ strTmp = tabStr[1].trim(); pMchFileOut2 = new File("data\\" + strTmp); } else if(strTmp.equals("MODULE_NAME")){ strTmp = tabStr[1].trim(); pModuleName = strTmp; } else if(strTmp.equals("BEXFILE_SOURCE")){ strTmp = tabStr[1].trim(); pBexFileSrc = new File("data\\" + strTmp); } } } } } scn.close(); // fermeture du fichier } catch (FileNotFoundException e){ e.printStackTrace(); } } // ******************************************* // Définition des ascensseurs /** * @return IniFile */ public File getIniFile() { return pIniFile; } /** * @return HexFileSrc */ public File getHexFileSrc() { return pHexFileSrc; } /** * @return HexFileOut */ public File getHexFileOut() { return pHexFileOut; } /** * @return DebugMode */ public Boolean getDebugMode() { return pDebugMode; } /** * @return MchFileOut1 */ public File getMchFileOut1() { return pMchFileOut1; } /** * @return MchFileOut2 */ public File getMchFileOut2() { return pMchFileOut2; } /** * @return BexFileSrc */ public String getModuleName() { return pModuleName; } /** * @return BexFileSrc */ public File getBexFileSrc() { return pBexFileSrc; } // ******************************************* // toString // => pour le debug public String toString(){ String strTmp; strTmp = "IniFile : " + pIniFile.toString(); strTmp += "\r\n" + "HexFileSrc : " + pHexFileSrc.toString(); strTmp += "\r\n" + "HexFileOut : " + pHexFileOut.toString(); strTmp += "\r\n" + "HexFileOut : " + pHexFileOut.toString(); strTmp += "\r\n" + "DebugMode : "; if (pDebugMode == true){ strTmp += "true"; } else { strTmp += "false"; } strTmp += "\r\n" + "MchFileOut1 : " + pMchFileOut1.toString(); strTmp += "\r\n" + "MchFileOut2 : " + pMchFileOut2.toString(); strTmp += "\r\n" + "ModuleName : " + pModuleName; strTmp += "\r\n" + "BexFileSrc : " + pBexFileSrc.toString(); return strTmp; } }
Quand je fais :
=> comment fait le programme (2ieme ligne) pour savoir que c'est la methode .toString qu'il faut appeler ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ConfigFile cfg = new ConfigFile(); System.out.println(cfg);
merci d'avance
Partager