import java.io.*;  // pour accéder à  'FileNotFoundException' ...
import java.util.*; // pour accéder à 'Scanner' et 'NoSuchElementException'... 
import static java.lang.System.*;  // cf.  Java 5
/**  Classe 'lect_fic' :  Un exemple de lecture d'un fichier texte via 'Scanner' et 'FileReader'  ...
  * @author   (c) ~/2A env.  H. Nguyen-Phu
  * @version   1.0   2009.02.21   */
public class lect_fic {
/** nom_fic :   champ  privé de classe de type 'String' . Par défaut, c'est le fic. 'lect_fic.java'  même !  */
    private static String nom_fic = "lect_fic.java";
/** Méthode principale publique  de classe 'main(...)'.  Elle utilise la classe 'es' pour accéder aux méthodes de classe: 
  *    attente() - affichage de l'heure de fin d'exécution,
  * @param args Tableau de chaînes pour ligne de commande éventuelle    */
    public static void main(String [] args)  {
		String line;
		boolean eof = false;
		out.println("lect_fic: Un exemple de lecture de fichier texte par la ligne de commande \n\t\t\t(c)~/2A env. 09h17 2009.03.02");
        out.println("Emploi:   java lect_fic unNomDeFichier");
        out.println("Par défaut:             unNomDeFichier == lect_fic.java");
		out.println("-------------------------------------------------------");
		if (args.length == 1)  // pour traiter la ligne de commande 
             nom_fic = args[0];
        try {
            Scanner sc = new Scanner(new FileReader(nom_fic));
            while (!eof) {  
				line = sc.nextLine();
				if (line == null)
					eof = true;
				else                        
					out.println(line);
            } 
        } catch (FileNotFoundException fnfe) {
            err.println("Fichier inexistant !"); }
		catch (NoSuchElementException  nsee) {
            err.print("Fin de fichier atteint !"); }
		catch (IllegalStateException ise) {
            err.print("L'objet 'sc' a été fermé !");}
		finally { out.println("\nTravail terminé !"); }
  }
}