logo

Ako prevziať vstup od používateľa v jazyku Java?

Java prináša rôzne prúdy so svojím I/O balíkom, ktorý pomáha používateľovi vykonávať všetky vstupno-výstupné operácie Java. Tieto toky podporujú všetky typy objektov, dátové typy, znaky, súbory atď., aby mohli plne vykonávať I/O operácie. Vstup v jazyku Java je možné vykonať pomocou určitých metód uvedených nižšie v článku.

Metódy prijímania vstupov v jazyku Java

Existujú dve cesty pomocou ktorého môžeme prevziať vstup Java od používateľa alebo zo súboru

vyvolať spracovanie výnimiek v jazyku Java
  • Trieda BufferedReader
  • Trieda skenerov

1. Použitie triedy BufferedReader na zadávanie reťazcov v jazyku Java

Je to jednoduchá trieda, ktorá sa používa na čítanie postupnosti znakov. Má jednoduchú funkciu čítania, ktorá číta znak, ďalšiu funkciu čítania, ktorá číta pole znakov, a funkciu readLine(), ktorá číta riadok.



InputStreamReader() je funkcia, ktorá konvertuje vstupný prúd bajtov na prúd znakov, takže ho možno čítať tak, ako BufferedReader očakáva prúd postáv. BufferedReader môže hádzať začiarknuté výnimky.

Nižšie je uvedená implementácia vyššie uvedeného prístupu:

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);  } }>

Výkon

Mayank Solanki 888 Entered String : Mayank Solanki Entered Integer : 888>

Použitie triedy snímača vyrovnávacej pamäte na čítanie vstupu

Nižšie je uvedená implementácia vyššie uvedeného prístupu:

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) {  }  } }>

Výkon:

čo je príkaz export v linuxe
Enter your name: Geeks Name=Geeks>

2. Použitie triedy skenera na zadávanie údajov v jazyku Java

Je to pokročilá verzia BufferedReader, ktorá bola pridaná v neskorších verziách Java. Skener dokáže čítať formátovaný vstup. Má rôzne funkcie pre rôzne typy údajov.

  • Skener je oveľa ľahšie čitateľný, pretože nemusíme písať hody, pretože v ňom nie je žiadna výnimka.
  • Bol pridaný v neskorších verziách Java
  • Obsahuje preddefinované funkcie na čítanie celých čísel, znakov a iných dátových typov.

Syntax triedy Scanner

Scanner scn = new Scanner(System.in);>

Importovanie triedy skenera

' Aby sme mohli používať Scanner, musíme importovať triedu Scanner z balíka util as

import java.util.Scanner;>

Funkcie vstavaného skenera sú nasledovné:

  • celé číslo: nextInt()
  • Plavák: nextFloat()
  • Reťazec: next() a nextLine()

Preto v prípade Integer a String v Scanneri nevyžadujeme analýzu, ako sme to požadovali v 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);  } }>

Výkon :

Entered String str1 : Geeks Entered String str2 : Geeks For Geeks Entered Integer : 123 Entered FloatValue : 123.090>

Príklad 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);  } }>

Výkon

Enter your name Geeks  Enter your rollno 5 Enter your marks 84.60 Name=Geeks  Rollno=5 Marks=84.60>

Rozdiely medzi BufferedReader a Scanner

  • BufferedReader je veľmi jednoduchý spôsob čítania vstupu, ktorý sa bežne používa na čítanie prúdu znakov. Poskytuje výhodu oproti Skeneru, pretože je rýchlejší ako Skener, pretože Skener vykonáva množstvo následného spracovania pri analýze vstupu; ako je vidieť v nextInt(), nextFloat()
  • BufferedReader je flexibilnejší, pretože môžeme určiť veľkosť vstupného prúdu, ktorý sa má čítať. (Vo všeobecnosti tam BufferedReader číta väčší vstup ako skener)
  • Tieto dva faktory vstupujú do hry, keď čítame väčší vstup. Vo všeobecnosti trieda skenera slúži ako vstup.
  • Preferovaný je BufferedReader, pretože je synchronizovaný. Pri práci s viacerými vláknami sa uprednostňuje.
  • Pre slušný vstup a ľahkú čitateľnosť. Skener je uprednostňovaný pred BufferedReader.