8
votes

Quelle est la meilleure façon d'obtenir une contribution de console en Java?

Obtenir la sortie avec Java est assez simple, car vous pouvez utiliser system.out.print et similaire.

L'entrée, d'autre part, semble un peu différente. Certaines personnes recommandent Java.Util.Scanner tandis que d'autres recommandent Java.io.bufferedreader , et je suis sûr qu'il y a beaucoup d'autres recommandations. Les deux méthodes ci-dessus sont les plus régulièrement utilisées.

Ne semble pas non plus présenter des options très belles (à mon avis). Alors, y a-t-il un meilleur moyen d'obtenir une entrée d'une fenêtre de console en Java? Et s'il n'y a pas, que dois-je choisir?


2 commentaires

Vous avez un look ici


Jetez un coup d'œil à JLINE . Il s'agit d'une interface de commandement en forme de shell avec historique de commande, l'achèvement de l'onglet, etc.


7 Réponses :


5
votes

Je pense que la classe de scanner est assez utile. Par exemple avec BufferDreader, vous devez lire une ligne à la fois et analyser pour les valeurs. Mais dans le scanner, vous obtenez des entiers avec la prochaine méthode () etc.


0 commentaires

5
votes

Je pense que le scanner est utile dans deux aspects, xxx

. Je préfère le scanner.


0 commentaires

1
votes

Le scanner est pratique, mais il est plus lent que BuffereDreader.


0 commentaires

1
votes
  1. Pour la saisie de la console Vous pouvez utiliser System.Console () code>, qui est disponible dans / après Java 1.6 P>

    Il a des options pour readpassword () code> (ne montrera pas le caractère saisi sur la console aussi, ne pas le mettre en cache) et readline () p>. P>.

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));       // using java.io.*
    String name = reader.readLine(); // it reads everything into string
    
  2. Le scanner est une option la plus simple et bonne pour moins d'entrées, mais il est un peu plus lent que d'autres options telles que console () code> et bufferedreader () code> quand vous en avez tellement entrées à manipuler. p>

    Scanner in = new Scanner(System.in); // using java.util.Scanner;
    String s = in.nextLine();            // for reading string
    int a = in.nextInt();                // for reading int
    float b = in.nextFloat();            // for reading float
    
  3. i personnellement comme bufferedreader () code> car il fonctionnera avec des versions antérieures et des environnements non interactifs, plus plus vite. P>

    String name = System.console().readLine(); //using java.io.*
    


0 commentaires

0
votes

Je préfère utiliser la console si vous utilisez Java 1.6 ou plus tard.

C'est simple une doublure. P>

String str = System.console().readLine();


0 commentaires

1
votes

bufferedreader est assez complexe et un peu long à utiliser mais il doit plus vite que Scanner, Si vous souhaitez prendre des contributions pour un but de codage concurrentiel, devez utiliser BufferDreader. Il y a aussi beaucoup de choses que vous pouvez vérifier ici. https: / /www.geeksforgeeks.org/fast-io-in-java-in-compétitive-Programmation/


0 commentaires

0
votes

Je pense que le scanner est un peu lent, mais le scanner est meilleur Le problème dans le scanner est que c'est difficile à prendre une entrée de chaîne après l'entrée de l'INT, car la nouvelle netted ne lisait pas Newline ou quelque chose mais vous pouvez l'analyser à int ou longtemps après avoir pris l'entrée en tant que chaîne dans NextLine () de cette façon, vous n'avez pas à vous soucier du curseur int A = Integer.parseint (S.Nextline ());


0 commentaires