Java apporte divers Streams avec son package d'E/S qui aide l'utilisateur à effectuer toutes les opérations d'entrée-sortie Java. Ces flux prennent en charge tous les types d'objets, types de données, caractères, fichiers, etc. pour exécuter pleinement les opérations d'E/S. La saisie en Java peut se faire avec certaines méthodes mentionnées ci-dessous dans l'article.
Méthodes pour prendre des entrées en Java
Il y a deux façons par lequel nous pouvons prendre l'entrée Java de l'utilisateur ou d'un fichier
- Classe BufferedReader
- Classe de scanner
1. Utilisation de la classe BufferedReader pour la saisie de chaîne en Java
C'est une classe simple utilisée pour lire une séquence de caractères. Il a une simple fonction read qui lit un caractère, une autre read qui lit un tableau de caractères et une fonction readLine() qui lit une ligne.
InputStreamReader() est une fonction qui convertit le flux d'entrée d'octets en un flux de caractères afin qu'il puisse être lu comme BufferedReader attend un flux de personnages. BufferedReader peut lancer des exceptions vérifiées.
Vous trouverez ci-dessous la mise en œuvre de l’approche ci-dessus :
Java // Java Program for taking user // input using BufferedReader Class import java.io.*; class GFG { // Main Method public static void main(String[] args) throws IOException { // Creating BufferedReader Object // InputStreamReader converts bytes to // stream of character BufferedReader bfn = new BufferedReader( new InputStreamReader(System.in)); // String reading internally String str = bfn.readLine(); // Integer reading internally int it = Integer.parseInt(bfn.readLine()); // Printing String System.out.println('Entered String : ' + str); // Printing Integer System.out.println('Entered Integer : ' + it); } }> Sortir
mysql a quitté la jointure
Mayank Solanki 888 Entered String : Mayank Solanki Entered Integer : 888>
Utilisation de la classe Buffer Reader pour lire l'entrée
Vous trouverez ci-dessous la mise en œuvre de l’approche ci-dessus :
Java /*package whatever //do not write package name here */ import java.io.*; import java.io.BufferedReader; import java.io.InputStreamReader; class Easy { public static void main(String[] args) { // creating the instance of class BufferedReader BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); String name; try { System.out.println('Enter your name'); name = reader.readLine(); // taking string input System.out.println('Name=' + name); } catch (Exception e) { } } }> Sortir:
caractère Java en chaîne
Enter your name: Geeks Name=Geeks>
2. Utilisation de la classe Scanner pour prendre des entrées en Java
Il s'agit d'une version avancée de BufferedReader qui a été ajoutée dans les versions ultérieures de Java. Le scanner peut lire les entrées formatées. Il a différentes fonctions pour différents types de types de données.
- Le scanner est beaucoup plus facile à lire car nous n’avons pas besoin d’écrire des lancers car il n’y a aucune exception levée.
- Il a été ajouté dans les versions ultérieures de Java
- Il contient des fonctions prédéfinies pour lire un entier, un caractère et d'autres types de données.
Syntaxe de la classe Scanner
Scanner scn = new Scanner(System.in);>
Importation d'une classe de scanner
' Pour utiliser le Scanner, nous devons importer la classe Scanner du package util comme
import java.util.Scanner;>
Les fonctions du scanner intégré sont les suivantes :
- Entier: suivantInt()
- Flotter: suivantFloat()
- Chaîne : suivant() et prochaineLigne()
Par conséquent, dans le cas d’Integer et de String dans Scanner, nous n’avons pas besoin d’analyse comme nous l’avions demandé dans BufferedReader.
Java // Java Program to show how to take // input from user using Scanner Class import java.util.*; class GFG { public static void main(String[] args) { // Scanner definition Scanner scn = new Scanner(System.in); // input is a string ( one word ) // read by next() function String str1 = scn.next(); // print String System.out.println('Entered String str1 : ' + str1); // input is a String ( complete Sentence ) // read by nextLine()function String str2 = scn.nextLine(); // print string System.out.println('Entered String str2 : ' + str2); // input is an Integer // read by nextInt() function int x = scn.nextInt(); // print integer System.out.println('Entered Integer : ' + x); // input is a floatingValue // read by nextFloat() function float f = scn.nextFloat(); // print floating value System.out.println('Entered FloatValue : ' + f); } }> Sortir :
Entered String str1 : Geeks Entered String str2 : Geeks For Geeks Entered Integer : 123 Entered FloatValue : 123.090>
Exemple 2 :
Java // Java Program to implement // Scanner Class to take input import java.io.*; import java.util.Scanner; // Driver Class class Easy { // main function public static void main(String[] args) { // creating the instance of class Scanner Scanner obj = new Scanner(System.in); String name; int rollno; float marks; System.out.println('Enter your name'); // taking string input name = obj.nextLine(); System.out.println('Enter your rollno'); // taking integer input rollno = obj.nextInt(); System.out.println('Enter your marks'); // taking float input marks = obj.nextFloat(); // printing the output System.out.println('Name=' + name); System.out.println('Rollno=' + rollno); System.out.println('Marks=' + marks); } }> Sortir
Enter your name Geeks Enter your rollno 5 Enter your marks 84.60 Name=Geeks Rollno=5 Marks=84.60>
Différences entre BufferedReader et Scanner
- BufferedReader est un moyen très basique de lire l'entrée généralement utilisée pour lire le flux de caractères. Il donne un avantage sur Scanner car il est plus rapide que Scanner car Scanner effectue de nombreux post-traitements pour analyser l'entrée ; comme on le voit dans nextInt(), nextFloat()
- BufferedReader est plus flexible car nous pouvons spécifier la taille de l'entrée du flux à lire. (En général, c'est là que BufferedReader lit une entrée plus grande que Scanner)
- Ces deux facteurs entrent en jeu lorsque nous lisons des données plus importantes. En général, la classe Scanner sert l'entrée.
- BufferedReader est préféré car il est synchronisé. Lorsqu'il s'agit de plusieurs threads, il est préférable.
- Pour une saisie décente et une lisibilité facile. Le scanner est préféré à BufferedReader.