Console en Java

Communication homme-machine dans un terminal

Ce site ne sera plus alimenté de contenu après août 2014. Tous les nouveaux articles seront redigés pour www.waitingforcode.com

Une interaction entre l''homme et la machine grâce à une console ? Cela ressemble à l''image véhiculée par les films science-fiction des années 1980-1990. Mais grâce à une classe Java, cette échange est possible dans le monde réel.

La classe java.io.Console permet à une personne physique de communiquer avec une console sur la base des questions - réponses. Le principe peut être utilisé par exemple dans un système d''authentification où l''on vérifie si les informations saisies par l''utilisateur l''autorisent à accéder au système. Regardons comment cet exemple peut être implémenté dans le code :

afficher le code

Maintenant, sur l''écran on verra (le résultat variera en fonction des réponses fournies) :

Enter your login: bartosz
Hello bartosz. Please, introduce your password.
Enter your password :
New User instance created : User [login=bartosz, password=bartosz2]
Your login - password pair is incorrect. Please, introduce the right credentials.

Introduce the correct password :
User's password changed User [login=bartosz, password=bartosz3].
Your login - password pair is incorrect. Please, introduce the right credentials.

Introduce the correct password :
User's password changed User [login=bartosz, password=bartosz].
Your password matches your login. You were correctly authentified

Le code est très intuitif. Au tout début on vérifie si la console existe. Dans le cas contraire, on peut l''activer dans le panneau de configuration Java (voir comment activer la console). Ensuite on passe à la première question, affichée avec la méthode readLine(). Cette fonction permet en même temps un affichage de la question et la saisie de la réponse. On affiche l''identifiant renseigné grâce à la méthode format(). Ensuite, via un autre moyen (les caractères ne s''afficheront pas sur l''écran) readPassword(), on récupère le mot de passe. Désormais on dispose de deux éléments obligatoires pour authentifier l''utilisateur. Le reste du code se charge de le faire.

Les petites applications basées sur Console peuvent être utiles dans le couplage entre le Java et d''autres langages de script. Elles peuvent servir, entre autres, à authentifier l''utilisateur, mais aussi à transmettre les paramètres aux scripts (bien qu''on peut toujours le faire directement en ligne de commande).

télécharger les fichiers d'exemple
Bartosz KONIECZNY Classes

Une question ? Une remarque ?

*

*

Un conseil MySQL

Qu'est-ce que signifie l'attribut UNSIGNED ?

Si notre base stocke uniquement les valeurs supérieures à 0, il faut utiliser un attribut qui aggrandit le nombre des chiffres possibles à sauvegarder. Il s'agit de l'attribut UNSIGNED qu'on peut appliquer aux champs numériques. Prenons l'exemple d'un champ type BIGINT. Normalement il occupe 8 octets et stocke les nombres entiers entre -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807. Cependant, cela s'avère très peu utile lorsqu'on est sûr d'avoir uniquement les entiers positifs. En rajoutant l'attribut UNSIGNED à ce champ on double sa capacité de stockage. Alors il est capable de contenir les chiffres de 0 à 18 446 744 073 709 551 615.