jeudi 15 octobre 2009

La lecture d'une valeur au clavier : utilisation de la classe BufferedReader

Cette classe a pour rôle de faciliter la lecture de données à partir du clavier. Elle définit une méthode de lecture pour les types de base les plus couramment utilisés (int, float, double, boolean, String).
La lecture d'une valeur au clavier se fait en tapant celle-ci suivie d'un retour chariot.
------------------------------------------------

import java.io.*;

/*
* @author rakib khalid
* @version 15/10/2009
*/
public class LectureClavier {

private static BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));

/**
* lecture au clavier d'un entier simple precision (int)
* @return l'entier lu
*/
public static int lireEntier() {

try {
return(Integer.parseInt(stdin.readLine()));
}
catch (Exception e)
{
erreurEntree(e,"entier");
return 0; // m�me si on passe jamais ici il faut un return !!
}
}

/**
* lecture au clavier d'une chaine de caractères
* @return la chaine lue
*/
public static String lireChaine() {
try {
return(stdin.readLine());
}
catch (Exception e) {
erreurEntree(e,"chaine de caracteres");

return null;
}
}

/**
* lecture au clavier d'un réel simple précision (float)
* @return le float lu
*/
public static float lireFloat() {

try {
return(Float.valueOf(stdin.readLine()).floatValue());
}
catch (Exception e) {
erreurEntree(e,"r�el (float)");

return (float) 0.0;
}
}

/**
* lecture au clavier d'un réel double précision (double)
* le double lu
*/
public static double lireDouble() {
try {
return(Double.valueOf(stdin.readLine()).doubleValue());
}
catch (Exception e) {
erreurEntree(e,"réel (double)");
return 0.0;
}
}

/**
* lecture au clavier d'une réponse de type oui/non. Si la valeur tapée est
* "o" ou "O" cette méthode renvoie true, sinon elle renvoie false.
* @return true si la chaine lue est "o" ou "O", false sinon
*
*/
public static boolean lireOuiNon() {
String ch;
ch = lireChaine();
return (ch.equals("o") || ch.equals("O"));
}

/**
* lecture au clavier d'un caractère
*/
public static char lireChar() {
String ch;
ch = lireChaine();
return ch.charAt(0);
}

/**
* en cas d'erreur lors d'une lecture, affiche sur la sortie standard
* (System.out) un message indiquant le type de l'erreur ainsi que
* la la pile des appels de méthodes ayant conduite cette erreur.
* @param e l'exception décrivant l'erreur.
* @param message le message d'erreur à afficher.
*/
private static void erreurEntree(Exception e, String message)
{
System.out.println("Erreur lecture " + message);
System.out.println(e);
e.printStackTrace();
System.exit(1);
}

}

Aucun commentaire:

Enregistrer un commentaire