
자바 언어 : 모든 입력, 출력(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 클래스를 사용하면
기본형 -> 문자열로 바꿔줄수 있음
또는
입력받은 문자열 -> 기본형으로 바꿔줄 수 있음
'Java' 카테고리의 다른 글
[Java] 클래스(1)__개발공부 14일차-1 (0) | 2022.03.10 |
---|---|
[Java] 제어문 연습(* 출력)__개발공부 6일차-2 (0) | 2022.03.07 |
[Java] IDE 설치 및 환경구축 __개발공부 1일차-3 (0) | 2022.02.15 |
[Java] 설치 및 환경 구축 __개발공부 1일차-1 (0) | 2022.02.15 |
[Java] 1단원 : 환경설정, 변수 (0) | 2022.02.06 |