IO 입출력 예제 part2

안녕하세요

이번 시간에는 이전에 했던 자바 IO 입출력을 아주 살짝 응용한 예제입니다.

따라서 이해하시는데 큰 어려움이 없을겁니다.


public class Test {

public static void main(String[] args) throws IOException {

int input=0, count=0; // 몇바이트 받았는지 count 변수

//ctrl+c를 누르기 전까지 계속 무한 루프
while((input=System.in.read())!=-1){

//Enter값 2바이트 플러스
//System.out.println((char)input);
System.out.write(input); // 위의 소스와 동일한 효과
count++;
}

System.out.println(count+"바이트 입력받음");

//노드 연결 닫음
System.in.close(); System.out.close();

}

}

위의 소스 코드를 실행하면 아래와 같은 결과가 나옵니다.


일단 'abcd' 라는 문자를 입력했을 때 6바이트를 입력받았다고 합니다

그 이유는 영문자는 1바이트로 받기 때문에 'abcd'는 총 4바이트입니다.

그렇다면 나머지 2바이트의 정체는 무엇일까요??


정답은 Enter 키 입니다.

Java에서 Enter는 \r + \n 으로 총 2바이트입니다.


그 밑에 '가나다'가 8바이트인 이유는 자바에서 한글은 2바이트여서

'가나다'는 총 6바이트.

그리고 Enter 키 까지 합쳐서 총 8바이트가 나오는 것입니다.


댓글 없음:

댓글 쓰기