Java

java.io.Console 클래스 SCJP 216번 문제

bang2001 2013. 7. 25. 16:52

Console 클래스는 우리가 흔히? 사용하는 DOS창에 대해서 Input/Output 를 제어하는 클래스이다.


즉 DOS창으로 사용자가 입력한 값을 받아오고 출력하도록 구현된 클래스이다.

다음 예제를 보자.

-------------------------------------------------------------------------------------------

import java.io.*; //패키지 임폴트

class ConsoleTest
{
public static void main(String[] args) 
{
Console c = System.console(); 
char[] pw = c.readPassword("%s", "pw: ");
System.out.println("got " + pw);
String name = c.readLine("%s""name: ");
System.out.println(" got : "+name);
}
}///////////////////////////////////////////////

-------------------------------------------------------------------------------------------

Console 클래스는 클래스 자체가 final로 선언되어 있으며 기본생성자는 private

막아놓은 즉 기본생성자가 존재하지 않는 클래스이다. 따라서 이 클래스는

객체를 생성하기 위해서 메소드를 이용해야 한다.

java.lang 패키지의 System클래스에 있는 메소드를 이용한다. 그것이 바로

System.console(); 메소드로 현재 사용자 컴퓨터의 console을 얻어오는 메소드이다.

이렇게 객체를 생성한 이후 위의 예제에서는 Password로 입력받는 방법과 일반적인

사용자가 입력한 문자열을 받아오는 메소드를 사용한 예제이다.

실행해보면 알겠지만 Password(readPassword() 메소드)는 입력시 화면에 출력되지 않으며, 

일반적으로 문자열을 얻어오는 메소드인 readLine() 은 입력받는 내용이 화면에 그대로 출력이 된다.

그리고 System.out.println()메소드를 이용하여 제대로 입력받았는지 알 수 있도록 하였다.