자바 언어 : 모든 입력, 출력(Input/output == IO)은 스트림(Stream)메서드에 의해 이루어 진다.

 

스트림 2가지 종류

1. 텍스트(문자) 스트림

2. 바이트 스트림

 

System.in 입력스트림은 바이트 스트림의 종류이다.

 

 

표준 입력장치(키보드)로 부터 입력받아서 출력하는 코드

 

import java.io.BufferedReader;

import java.io.InputStreamReader;

 

BUfferedReader br = new BufferedReader(new InputStreamReader(System.in));

 

[키보드] ->System.in 입력스트림 -> InputStreamReader 클래스 -> BufferedReader 클래스
     A             0100 0001                          'A'

     B               - - -                                 'B'                              

   "ABC"                                                                            "[A][B][C]"  문자열로 반환시켜줌

키보드에서 입력받으면  System.in이 이진법으로 받아들이고

다시 그 이진법으로 받아들인걸 InputStreamReader로 변환시켜서 저장한다.
한 문자가 아니라 문자열 이라면

BufferedReader가 최종적으로 문자열로 저장한다.

 

 

 

 

 

.readLine()  메서드

 

기능 : 한 라인을 읽어주는 역할을 한다.

매개변수 : ()

리턴값 : String으로 리턴자료형이 생긴다.

 

 

br 변수를 통해서 읽기 작업을 하면 키보드로 부터 입력한 값을 읽을 수 있다.

 

name =br.readLine();                           //read 읽기 + Line 한 라인      [블러킹]

 

코드를 실행시켜보면 키보드에 입력을 하기 전까지 블러킹 당해있는걸 확인할수 있다.

 

 

 

 

 

 

 

 

Casting 연산자

 

(         )   : Casting 연산자

 

Casting 연산자로는 같은 숫자형 끼리 밖에 형 변환이 되지 않는다.

 

byte kor;

int math = (int)kor ;                                     // ---> 가능하다.

 

int kor = (int)br.readLine();                            // ---> readLine()은 문자열 리턴값을 반환하므로 오류난다.

 

 

 

String 형 변환

 

int kor = br.readLine();                                 // ---> 실행하면 오류난다.

readLine()는 문자열로 받기 때문에 좌측 할당값이란 우측 할당값이란 자료형이 달라져서 오류가 난다.

 

int kor = (int)br.readLine();                            // ---> Casting 연산자 또한

                                                                        좌변 우변 모두 숫자형이 아니므로실행하면 오류난다.

 

그러면 String을 다른 형으로 어떻게 바꿀것인가?

*******Wrapper(래퍼) 클래스 이용*******

 

 

 

Wrapper(래퍼) 클래스

 

래퍼클래스란?

기본형을 사용하기 쉽도록 기능(메서드,필드)을 구현해 (포장해) 놓은 클래스이다.

 

int i = Integer.MAX_VALUE;                                      //----------->int 표현 범위의 가장 큰 수를 나타낼수 있음

System.out.println(i);

 

byte b = Byte.MAX_VALUE;                                      //----------->Byte 표현 범위의 가장 큰 수를 나타낼수 있음
System.out.print(b);

 

 

char   -> Character *
byte  -> Byte                                   XXX.parseXXX("90")
short  -> Short
int    -> Integer *                              Integer.parseInt("90")
long   -> Long
float   -> Float                                  Float.parseFloat("90")
double   -> Double                            Double.parseDouble("90")
boolean   -> Boolean

 

Wrapper 클래스를 사용하면

기본형 -> 문자열로 바꿔줄수 있음

 

또는 

입력받은 문자열 -> 기본형으로 바꿔줄 수 있음 

 

 

복사했습니다!