Java aduce diverse fluxuri cu pachetul său I/O care ajută utilizatorul să efectueze toate operațiunile de intrare-ieșire Java. Aceste fluxuri acceptă toate tipurile de obiecte, tipuri de date, caractere, fișiere etc. pentru a executa pe deplin operațiunile I/O. Introducerea în Java poate fi cu anumite metode menționate mai jos în articol.
Metode de preluare a datelor în Java
Sunt doua feluri prin care putem prelua input Java de la utilizator sau dintr-un fișier
- Clasa BufferedReader
- Clasa de scaner
1. Utilizarea clasei BufferedReader pentru introducerea șirurilor în Java
Este o clasă simplă care este folosită pentru a citi o secvență de caractere. Are o funcție simplă de citire care citește un caracter, o altă funcție de citire care citește o matrice de caractere și o funcție readLine() care citește o linie.
InputStreamReader() este o funcție care convertește fluxul de intrare de octeți într-un flux de caractere, astfel încât să poată fi citit așa cum se așteaptă BufferedReader un flux de personaje. BufferedReader poate arunca excepții verificate.
Mai jos este implementarea abordării de mai sus:
masa din latexJava
// 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); } }>
Ieșire
Mayank Solanki 888 Entered String : Mayank Solanki Entered Integer : 888>
Utilizarea clasei Buffer Reader pentru a citi intrarea
Mai jos este implementarea abordării de mai sus:
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) { } } }>
Ieșire:
comanda Linux Run
Enter your name: Geeks Name=Geeks>
2. Utilizarea Scanner Class pentru preluarea datelor în Java
Este o versiune avansată a BufferedReader care a fost adăugată în versiunile ulterioare de Java. Scanerul poate citi intrarea formatată. Are diferite funcții pentru diferite tipuri de date.
- Scanerul este mult mai ușor de citit, deoarece nu trebuie să scriem aruncări, deoarece nu există nicio excepție.
- A fost adăugat în versiunile ulterioare de Java
- Conține funcții predefinite pentru a citi un întreg, un caracter și alte tipuri de date.
Sintaxa clasei Scanner
Scanner scn = new Scanner(System.in);>
Se importă clasa de scaner
' Pentru a folosi Scannerul, trebuie să importam clasa Scanner din pachetul util ca
import java.util.Scanner;>
Funcțiile scanerului încorporat sunt după cum urmează:
- Întreg: nextInt()
- Pluti: nextFloat()
- șir: next() și nextLine()
Prin urmare, în cazul Integer și String în Scanner, nu avem nevoie de parsare așa cum am cerut în 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); } }>
Ieșire:
Entered String str1 : Geeks Entered String str2 : Geeks For Geeks Entered Integer : 123 Entered FloatValue : 123.090>
Exemplul 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); } }>
Ieșire
Enter your name Geeks Enter your rollno 5 Enter your marks 84.60 Name=Geeks Rollno=5 Marks=84.60>
Diferențele dintre BufferedReader și Scanner
- BufferedReader este o modalitate foarte simplă de a citi intrarea folosită în general pentru a citi fluxul de caractere. Oferă un avantaj față de Scanner, deoarece este mai rapid decât Scanner, deoarece Scanner face o mulțime de post-procesare pentru analizarea intrării; așa cum se vede în nextInt(), nextFloat()
- BufferedReader este mai flexibil, deoarece putem specifica dimensiunea intrării fluxului de citit. (În general, acolo BufferedReader citește o intrare mai mare decât Scanner)
- Acești doi factori intră în joc atunci când citim intrări mai mari. În general, Scanner Class servește intrarea.
- BufferedReader este preferat deoarece este sincronizat. În timp ce se ocupă cu mai multe fire, este de preferat.
- Pentru o introducere decentă și o lizibilitate ușoară. Scanerul este preferat față de BufferedReader.