import java.io.File; import java.io.FileNotFoundException; import java.util.Collections; import java.util.Scanner; import java.util.Vector; class Words { /** * Retourne un tableau constitué des lignes de texte du fichier dont le nom * est passé en paramètre. Le tableau retourné est trié suivant l'ordre * lexicographique croissant. * * Les espaces en début et en fin de ligne sont supprimés. Les lignes vides * ne sont pas comptées. Arrête le programme si le fichier ne peut pas être * lu. */ static String[] readWords(String filename) { Scanner input = null; try { input = new Scanner(new File(filename)); } catch (FileNotFoundException e) { System.err.println("ERROR: " + e.getMessage()); System.exit(1); } Vector vec = new Vector(); while (input.hasNextLine()) { String line = input.nextLine().trim(); if (line.length() > 0) vec.add(line); } Collections.sort(vec); return vec.toArray(new String[0]); } /** * Exemple de programme très simple qui utilise la fonction readWords(). Ce * programme utilise la fonction pour lire le contenu d'un fichier. Les * éléments du tableau retourné par la fonction readWords() sont simplement * affichés. * * Par défaut, le programme va lire le fichier "/usr/share/dict/words" qui, * s'il est présent, contient une liste de mots (normalament en français). * Il est possible de spécifier un autre fichier à l'exécution en donnant * son nom sur la ligne de commande. * * Par exemple, pour lire un fichier appelé "toto.txt", il suffit d'exécuter * le programme avec : * $ java Words toto.txt */ public static void main(String[] args) { // le nom du fichier à lire String file = args.length > 0 ? args[0] : "/usr/share/dict/words"; // lecture du fichier, le contenu est stocké dans le tableau 'tab' String[] tab = readWords(file); // affichage des éléments du tableau for (int i = 0; i < tab.length; i++) System.out.println("\"" + tab[i] + "\""); } }