[JAVA] System.in

Jimin_Note·2022년 6월 26일
0

☕️JAVA

목록 보기
4/8
post-thumbnail

🌱InputStreamReader

InputStreamReader는 사용하기 Scanner에 비해 번거롭지만 속도가 빠르다.

import java.io.*; //InputStreamReaer 사용을 위한 임포트

public class Main {
	public static void main(String[] args){
    InputStreamReader rd = new InputStreamReader(System.in);
    //사용자로부터 값 입력받기
    try{
      while(true){
        int a= rd.read(); //키보드로부터 문자 하나 읽고 a에 저장
        if (a==-1)  // -1 -> command+z
          break;
        System.out.println((char)a); //입력된 문자 출력
      }
    }
    catch(IOException e){
      System.out.println("ERROR");
    }
  
}
}

🌱BufferedReader

  • InputStreamReader 는 사용자에 요청이 들어올 때 마다 읽어와서 처리
    입력을 char로 읽어옴(한 글자씩 읽어올 수 있음)
    적은 양의 데이터의 경우는 속도가 빠를 수 있지만 양이 많이지면 효율적이지 못함
  • BufferedReader는 사용자에 요청이 들어올 때 일정한 크기의 데이터를 버퍼에 보관 후 한번에 처리. InputStreamReader에 비해 부하가 적음. 즉, 효율적임.
    입력을 Stringdm로 읽어옴(한 라인 전체('\n'까지)를 읽어올 수 있음)
package Blog.BufferdReader;
 
import java.io.BufferedReader;
import java.io.IOException; //BufferedReader 무조건 예외처리를 해줘야함
import java.io.InputStreamReader;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) throws IOException {    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String a = br.readLine();
       
        System.out.println("BufferedReader : " + a);

    }
}

JAVA에서는 예외가 발생할 수 있는 상황이 조금이라도 인지되면 예외처리를 해줘야함.

🌱Scanner

ScannerInputStreamReader에 비해 사용하기 편하지만 속도가 느리다.

import java.util.Scanner; // Scanner 사용을 위한 임포트

public class Main {
	public static void main(String[] args){
    Scanner a = new Scanner(System.in);
    System.out.println("이름, 나이, 생년월일 입력");
    System.out.println(a.next()+"입니다.");
    System.out.println(a.nextInt()+"살 입니다."); 
    System.out.println(a.nextInt()+"년");
    System.out.println(a.nextInt()+"월");
    System.out.println(a.nextInt()+"일");
}
}
메소드설명
Sting next()다음 아이템을 문자열 타입으로 리턴
int nextInt()다음 아이템을 int 타입으로 리턴
double next()다음 아이템을 double 타입으로 리턴
Sting nextLine()한 라인 전체('\n'까지)를 읽어 문자열 타입으로 리턴
profile
Hello. I'm jimin:)

0개의 댓글