Java Day 4 입출력
08 Dec 2020 | JavaJava Day 4 입출력
-
표준 입출력
-
import java.io.*; (IDE에 따라 자동으로 입력됨)
-
메소드 뒤에 throws IOEXception 예외 전가 처리를 해야한다
왜?
JVM은 한 번 실행이 되면 멈추면 안된다. 커서가 쭉쭉 내려오다가 입출력을 위해 멈추게 되면 JVM이 프로그램을 종료시켜버린다. 따라서 예상이 되는 예외를 처리해주어야한다.
-
-
print.in.read()
// read() 1byte입력받음, read(byte[]) 배열로 입력받음, read(byte[], start, length) 시작부터 길이만큼 배열로 받음
int i = System.in.read();
char i2 = (char)System.in.read(); //아스키코드값으로 입력받기 때문에 강제로 형변환을 해줘야 컴파일에러가 안난다.
int i3 = System.in.read() - '0'; //숫자 0의 아스키값이 48이므로 48만큼 빼줘야 숫자가 그대로 나옴
- 문자열 입력받기
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name;
name = br.readLine(); //엔터치기 전까지의 2비트 단위의 문자열을 저장
int score;
score = Integer.parseInt(br.readLine()); //기본적으로 문자열을 입력받으므로 숫자는 형변환을 시켜줘야함
- write()
//wirte(int), write(byte[]), write(byte[], start, length)
System.out.write(65); // ---> 'A' 출력
//그러나 안찍혀있다 why? write는 buffer를 이용
//자바에서 버퍼는 무조건 8KB --> 8192byte가 될 때까지 출력을 안함
System.out.flush(); // flush()를 이용하여 버퍼에 저장된 값 출력
byte[] by = {'b','y','t','e'};
System.out.write(by,0,4); // by의 0번째부터 길이 4만큼 출력
//8192byte가 안찼는데 출력이 된 이유는?
//byte[] 바이트배열의 경우에는 Auto-flush 기능이 있기 때문에
//주로 byte단위로 전송을 하는 네트워크에서 사용
- 그 밖에 C언어에서 온 printf가 있으나 거~~~의 쓰이지 않으므로 pass…
참고 자료
KG아이티뱅크 자바 강의자료