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
|
public class SrvCodePostaux extends SrvServletStandard{
public void performTask(
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
String cp = request.getParameter("cp");
String filePath = "/CPVilles.txt";
try{
// Création du flux bufférisé sur un FileReader, immédiatement suivi par un
// try/finally, ce qui permet de ne fermer le flux QUE s'il le reader
// est correctement instancié (évite les NullPointerException)
BufferedReader buff = new BufferedReader(new FileReader(filePath));
try {
String line;
String ville = null;
List listVille=new ArrayList();
// Lecture du fichier ligne par ligne. Cette boucle se termine
// quand la méthode retourne la valeur null.
while ((line = buff.readLine()) != null) {
String cp1=(String) line.substring(44, 49);
ville=line.substring(50, 83);
Pattern pattern = Pattern.compile(cp);
Matcher matcher = pattern.matcher(cp1);
if(matcher.find()){ // si la chaine a été trouvé
listVille.add(ville);
}
}
try {
//if(listVille!=null){
response.getWriter().println("<select name='Ville'");
for(int i=0;i<listVille.size();i++) {
response.getWriter().println("<option>");
response.getWriter().println(listVille.get(i));
response.getWriter().println("</option>");
}
response.getWriter().println("</select>");
} catch (Exception e) {
e.printStackTrace();
}
} finally {
// dans tous les cas, on ferme nos flux
buff.close();
}
} catch (Exception ioe) {
// erreur de fermeture des flux
System.out.println("Erreur --" + ioe.toString());
}
}
} |