Java надає різноманітні потоки зі своїм пакетом введення/виведення, який допомагає користувачеві виконувати всі операції введення-виведення Java. Ці потоки підтримують усі типи об’єктів, типи даних, символи, файли тощо для повного виконання операцій введення/виведення. Вводити в Java можна певними методами, згаданими нижче в статті.
Методи введення в Java
Є двома способами за допомогою якого ми можемо приймати дані Java від користувача або з файлу
- Клас BufferedReader
- Клас сканера
1. Використання класу BufferedReader для введення рядків у Java
Це простий клас, який використовується для читання послідовності символів. Він має просту функцію read, яка читає символ, іншу функцію read, яка читає масив символів, і функцію readLine(), яка читає рядок.
InputStreamReader() — це функція, яка перетворює вхідний потік байтів у потік символів, щоб його можна було прочитати, оскільки BufferedReader очікує потік символів. BufferedReader може створювати перевірені винятки.
алгоритм бінарного пошуку
Нижче наведено реалізацію вищезазначеного підходу:
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); } }> Вихід
Mayank Solanki 888 Entered String : Mayank Solanki Entered Integer : 888>
Використання класу читача буфера для читання вхідних даних
Нижче наведено реалізацію вищезазначеного підходу:
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) { } } }> Вихід:
vlc media player завантажити youtube
Enter your name: Geeks Name=Geeks>
2. Використання класу Scanner для введення даних у Java
Це розширена версія BufferedReader, яка була додана в пізніших версіях Java. Сканер може читати відформатований вхід. Він має різні функції для різних типів типів даних.
- Сканер набагато легше читати, оскільки нам не потрібно писати викиди, оскільки він не створює винятків.
- Він був доданий у пізніших версіях Java
- Він також містить попередньо визначені функції для читання цілих чисел, символів та інших типів даних.
Синтаксис класу Scanner
Scanner scn = new Scanner(System.in);>
Імпорт класу сканера
' Щоб використовувати Scanner, нам потрібно імпортувати клас Scanner з пакета util as
import java.util.Scanner;>
Функції вбудованого сканера такі:
- Ціле число: nextInt()
- Поплавок: nextFloat()
- Рядок: next() і nextLine()
Отже, у випадку Integer і String у Scanner ми не потребуємо синтаксичного аналізу, як ми вимагали в BufferedReader.
java і swingJava
// 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); } }> Вихід:
Entered String str1 : Geeks Entered String str2 : Geeks For Geeks Entered Integer : 123 Entered FloatValue : 123.090>
приклад 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); } }> Вихід
Enter your name Geeks Enter your rollno 5 Enter your marks 84.60 Name=Geeks Rollno=5 Marks=84.60>
Відмінності між BufferedReader і Scanner
- BufferedReader — це простий спосіб читання введення, який зазвичай використовується для читання потоку символів. Це дає перевагу над Scanner, оскільки він швидший, ніж Scanner, оскільки Scanner виконує багато пост-обробки для аналізу вхідних даних; як показано в nextInt(), nextFloat()
- BufferedReader є більш гнучким, оскільки ми можемо вказати розмір вхідного потоку для читання. (Загалом, саме там BufferedReader читає більші вхідні дані, ніж Scanner)
- Ці два фактори вступають у гру, коли ми читаємо більші вхідні дані. Загалом, клас Scanner обслуговує вхідні дані.
- BufferedReader є кращим, оскільки він синхронізований. При роботі з кількома потоками це є кращим.
- Для гідного введення та легкої читабельності. Сканер має перевагу над BufferedReader.