본문 바로가기

Java Programming

Stream - Scanning

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
자바를 처음 접하면서 Scanner라는 클래스 형의 객체를 사용하여 사용자로부터 Console 창에서 값을 입력 받을 수 있었습니다. Stream 에서 Scanner 클래스의 객체를 이용하여서 사용하는 튜토리얼이 나와 있었습니다.

기존에는 Scanner s = new Scanner(System.in); 이런식으로 사용 했는데 생성자의 인수가 inputStream 객체입니다.

Scanner의 생성자를 살펴보면 InputStream만 인수로 받는다는것을 알수가 있습니다.
Scanner(InputStream source)
         Constructs a new Scanner that produces values scanned from the specified input stream.

Scanner
(InputStream source, String charsetName)

         Constructs a new Scanner that produces values scanned from the specified input stream.
이렇게 Scanner 객체를 사용하는 이유는 바로 Breaking Input into Tokens 라는 제목과 같습니다. 토큰 단위로 잘라서 읽어 들이는데요, 처음에는 기본값으로 whitespace(공백)로 설정이 되어 있다고 합니다. 공백은 단순히 스페이스만을 이야기 하는것이 아니고 line-seperater나 tap 키도 포함이 됩니다.

튜토리얼에서 제공하는 소스코드를 작성해 보았습니다. 콘솔창을 확인하면 xanadu.txt 파일에 있는 내용이 빈칸이 발생할때마다 한줄씩 띄워져서 출력이 되는것을 확인 할 수 있습니다.

공백 뿐만아니라 useDelimiter() 라는 메소드를 사용하여 공백 대신에 다른것을 구분자로 사용할 수 있다고 합니다.