Java는 사용자가 모든 Java 입출력 작업을 수행하는 데 도움이 되는 I/O 패키지와 함께 다양한 스트림을 제공합니다. 이러한 스트림은 I/O 작업을 완전히 실행하기 위해 모든 유형의 객체, 데이터 유형, 문자, 파일 등을 지원합니다. Java의 입력은 기사 아래에 언급된 특정 방법을 사용하여 수행할 수 있습니다.
Java에서 입력을 받는 방법
있다 두 가지 방법 이를 통해 사용자나 파일에서 Java 입력을 가져올 수 있습니다.
- BufferedReader 클래스
- 스캐너 클래스
1. Java에서 문자열 입력을 위해 BufferedReader 클래스 사용
일련의 문자를 읽는 데 사용되는 간단한 클래스입니다. 여기에는 문자를 읽는 간단한 read 함수, 문자 배열을 읽는 또 다른 read 및 한 줄을 읽는 readLine() 함수가 있습니다.
InputStreamReader()는 BufferedReader가 예상하는 대로 읽을 수 있도록 바이트의 입력 스트림을 문자 스트림으로 변환하는 함수입니다. 문자의 흐름. BufferedReader는 확인된 예외를 발생시킬 수 있습니다.
다음은 위의 접근 방식을 구현한 것입니다.
자바
// 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>
버퍼 리더 클래스를 사용하여 입력 읽기
다음은 위의 접근 방식을 구현한 것입니다.
자바 /*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) { } } }>
산출:
Enter your name: Geeks Name=Geeks>
2. Java에서 입력을 받기 위해 스캐너 클래스 사용
이후 Java 버전에 추가된 BufferedReader의 고급 버전입니다. 스캐너는 형식화된 입력을 읽을 수 있습니다. 다양한 유형의 데이터 유형에 대해 다양한 기능을 제공합니다.
- 스캐너는 예외가 발생하지 않기 때문에 throw를 작성할 필요가 없기 때문에 읽기가 훨씬 쉽습니다.
- 이후 버전의 Java에 추가되었습니다.
- 여기에는 정수, 문자 및 기타 데이터 유형을 읽는 사전 정의된 함수도 포함되어 있습니다.
Scanner 클래스의 구문
Scanner scn = new Scanner(System.in);>
스캐너 클래스 가져오기
' Scanner를 사용하려면 util 패키지에서 Scanner 클래스를 다음과 같이 가져와야 합니다.
import java.util.Scanner;>
내장된 스캐너 기능은 다음과 같습니다:
- 정수: nextInt()
- 뜨다: 다음플로트()
- 끈 : next() 및 nextLine()
따라서 Scanner의 Integer 및 String의 경우 BufferedReader에서 요구했던 것처럼 구문 분석이 필요하지 않습니다.
자바 // 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 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와 스캐너의 차이점
- BufferedReader는 일반적으로 문자 스트림을 읽는 데 사용되는 입력을 읽는 매우 기본적인 방법입니다. Scanner는 입력 구문 분석을 위해 많은 후처리를 수행하므로 Scanner보다 빠르기 때문에 Scanner보다 우위에 있습니다. nextInt(), nextFloat()에서 볼 수 있듯이
- BufferedReader는 읽을 스트림 입력의 크기를 지정할 수 있으므로 더 유연합니다. (일반적으로 BufferedReader가 Scanner보다 더 큰 입력을 읽는 곳이 있습니다)
- 이 두 가지 요소는 더 큰 입력을 읽을 때 작용합니다. 일반적으로 스캐너 클래스가 입력을 제공합니다.
- BufferedReader는 동기화되므로 선호됩니다. 여러 스레드를 처리하는 동안 선호됩니다.
- 적절한 입력과 쉬운 가독성을 위해. Scanner는 BufferedReader보다 선호됩니다.