Java tuo erilaisia virtauksia I/O-paketillaan, joka auttaa käyttäjää suorittamaan kaikki Java-tulo-tulostustoiminnot. Nämä virrat tukevat kaikentyyppisiä objekteja, tietotyyppejä, merkkejä, tiedostoja jne. I/O-toimintojen suorittamiseksi täysin. Java-syöte voidaan tehdä tietyillä alla artikkelissa mainituilla menetelmillä.
Menetelmät syötteen ottamiseksi Javassa
On kaksi tapaa jolla voimme ottaa Java-syötteen käyttäjältä tai tiedostosta
- BufferedReader-luokka
- Skanneriluokka
1. BufferedReader-luokan käyttäminen merkkijonojen syöttämiseen Javassa
Se on yksinkertainen luokka, jota käytetään merkkijonojen lukemiseen. Siinä on yksinkertainen lukutoiminto, joka lukee merkin, toinen luku, joka lukee merkkijonon, ja readLine()-funktio, joka lukee rivin.
InputStreamReader() on funktio, joka muuntaa syötetyn tavuvirran merkkivirraksi, jotta se voidaan lukea, koska BufferedReader odottaa hahmojen virta. BufferedReader voi heittää valittuja poikkeuksia.
Alla on yllä olevan lähestymistavan toteutus:
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); } }>
Lähtö
Mayank Solanki 888 Entered String : Mayank Solanki Entered Integer : 888>
Puskurilukijaluokan käyttäminen syötteen lukemiseen
Alla on yllä olevan lähestymistavan toteutus:
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) { } } }>
Lähtö:
j e s t
Enter your name: Geeks Name=Geeks>
2. Skanneriluokan käyttäminen syötteiden vastaanottamiseen Javassa
Se on edistyksellinen versio BufferedReaderista, joka on lisätty uudempiin Java-versioihin. Skanneri voi lukea alustettua syötettä. Sillä on erilaisia toimintoja erityyppisille tietotyypeille.
- Skanneri on paljon helpompi lukea, koska meidän ei tarvitse kirjoittaa heittoja, koska se ei aiheuta poikkeusta.
- Se lisättiin Java:n myöhemmissä versioissa
- Se sisältää ennalta määritettyjä toimintoja kokonaislukujen, merkkien ja muiden tietotyyppien lukemiseen.
Skanneriluokan syntaksi
Scanner scn = new Scanner(System.in);>
Tuodaan skanneriluokkaa
' Skannerin käyttämiseksi meidän on tuotava Scanner-luokka util-paketista nimellä
import java.util.Scanner;>
Sisäänrakennetut skanneritoiminnot ovat seuraavat:
- Kokonaisluku: nextInt()
- Kellua: nextFloat()
- merkkijono: next() ja nextLine()
Tästä syystä Scannerin Integer ja String tapauksessa emme vaadi jäsentämistä, kuten vaatimme BufferedReaderissa.
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); } }>
Lähtö:
Entered String str1 : Geeks Entered String str2 : Geeks For Geeks Entered Integer : 123 Entered FloatValue : 123.090>
Esimerkki 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); } }>
Lähtö
Enter your name Geeks Enter your rollno 5 Enter your marks 84.60 Name=Geeks Rollno=5 Marks=84.60>
Erot BufferedReaderin ja Scannerin välillä
- BufferedReader on hyvin yksinkertainen tapa lukea syötettä, jota yleensä käytetään merkkivirran lukemiseen. Se antaa etulyöntiaseman Scanneriin verrattuna, koska se on nopeampi kuin skanneri, koska skanneri suorittaa paljon jälkikäsittelyä syötteen jäsentämiseksi; kuten nextInt(), nextFloat()
- BufferedReader on joustavampi, koska voimme määrittää luettavan stream-syötteen koon. (Yleensä siellä BufferedReader lukee suurempia syötteitä kuin Scanner)
- Nämä kaksi tekijää vaikuttavat, kun luemme suurempaa syötettä. Yleensä Scanner Class palvelee syötettä.
- BufferedReader on suositeltava, koska se on synkronoitu. Useiden säikeiden käsittelyssä on suositeltavaa.
- Kunnollinen syöttö ja helppolukuisuus. Skanneri on parempi kuin BufferedReader.