web-dev-qa-db-fra.com

BufferedReader vs Console vs Scanner

Salut, je suis nouveau sur Java et je voudrais savoir quel est le meilleur choix pour lire une entrée utilisateur dans la console, pour autant que je sache, il y a 3 façons de le faire:

  1. Console console = System.console();
  2. BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
  3. Scanner reader = new Scanner(System.in);

Lequel devrais-je choisir? Pourquoi celui-là et pas les autres?

41

BufferedReader

  • Depuis Java 1.1
  • Lève les exceptions vérifiées
  • Peut lire les caractères, les tableaux de caractères et les lignes
  • Vite

Scanner

  • Depuis Java 1.5
  • Ne lève pas d'exceptions vérifiées
  • Peut lire des lignes, des jetons délimités par des espaces, des jetons délimités par des expressions rationnelles et des nombres
  • Difficile de lire des caractères simples

Console

  • Depuis Java 1.6
  • Ne lève pas d'exceptions vérifiées
  • Peut lire des lignes
  • lecteur sous-jacent peut lire les caractères et les tableaux de caractères (s'arrête aux limites de la ligne)
  • Pas toujours disponible (par exemple Eclipse )
  • Peut lire les mots de passe (c'est-à-dire lire sans afficher les caractères)

Recommandation: scanner

Les méthodes de lecture des nombres sont très utiles. Les exceptions ne sont pas vérifiées, vous n'avez donc pas à écrire de blocs try/catch standard.

53
tom

à côté de ceux-ci, vous pouvez également utiliser datainputstream etc.

Maintenant BufferedReader Lire du texte à partir d'un flux d'entrée de caractères, en tamponnant les caractères de manière à permettre une lecture efficace des caractères, des tableaux et des lignes. La taille du tampon peut être spécifiée ou la taille par défaut peut être utilisée. La valeur par défaut est suffisamment grande pour la plupart des applications.

Où Scanner est un simple scanner de texte qui peut analyser des types et des chaînes primitifs à l'aide d'expressions régulières. Un scanner divise son entrée en jetons à l'aide d'un modèle de délimiteur, qui correspond par défaut aux espaces blancs. Les jetons résultants peuvent ensuite être convertis en valeurs de différents types en utilisant les différentes méthodes suivantes. Le scanner est utilisé pour analyser les jetons à partir du contenu du flux tandis que BufferedReader lit simplement le flux et ne fait aucune analyse spéciale.

vérifiez également le lien ci-dessous, il vous aidera sûrement .......

http://www.javawebtips.com/50474/

4
roanjain

La classe console essaie d'implémenter une manière indépendante de la plate-forme de gérer avec l'entrée de la console. Tous les OS ont une console de quelque manière que ce soit, mais ils sont différents dans la mise en œuvre. La classe Console vous donne donc une Java platfrom classe d'exécution indépendante pour accéder à des choses comme la saisie de mot de passe, etc.

Le scanner est utilisé pour analyser les jetons à partir du contenu du flux tandis que BufferedReader lit simplement le flux et ne fait aucune analyse spéciale.

3
Juned Ahsan