Archive

Java Day 4 입출력

|

Java Day 4 입출력


  1. 표준 입출력

    • import java.io.*; (IDE에 따라 자동으로 입력됨)

    • 메소드 뒤에 throws IOEXception 예외 전가 처리를 해야한다

      왜?

      JVM은 한 번 실행이 되면 멈추면 안된다. 커서가 쭉쭉 내려오다가 입출력을 위해 멈추게 되면 JVM이 프로그램을 종료시켜버린다. 따라서 예상이 되는 예외를 처리해주어야한다.

  2. 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만큼 빼줘야 숫자가 그대로 나옴
  1. 문자열 입력받기
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name;
name = br.readLine(); //엔터치기 전까지의 2비트 단위의 문자열을 저장

int score;
score = Integer.parseInt(br.readLine()); //기본적으로 문자열을 입력받으므로 숫자는 형변환을 시켜줘야함
  1. 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단위로 전송을 하는 네트워크에서 사용
  1. 그 밖에 C언어에서 온 printf가 있으나 거~~~의 쓰이지 않으므로 pass…

참고 자료


이것이자바다

자바프로그래밍100% 실전가이드

KG아이티뱅크 자바 강의자료