java1.6 에는 System.in, System.out 을 쉽게 다룰 수 있는 Console 이란 클래스가 java.io 패키지에 추가 되었다. 
System.console() 메서드를 통해 인스턴스를 가져 올 수 있으며Eclipse 나 Linux 의 백그라운드 프로세스로 실행 했을 경우
사용자에게 입/출력 스트림 경로가 생기지 않아 Null 체크는 꼭 해줘야 한다.

Console console = System.console(); 
if(console == null) {
//... do something
}

사용자에게 출력은 printf 메서드를 사용한다.

또한 printf 메서드는 formatter을 지원하는 메서드를 오버로딩해 가지고 잇다.

 

String formatString = "%1$10s %2$10s";
conosel.printf(formatString, "1234567890" , "1~20");

 

사용자 입력은 readLine() 메서드를 사용하는데
사용자에게 텍스트를 출력 동시에 입력을 받을 수 있다. 

String name = console.readLine("[이름을 입력하세요] : ");

Console 에서 가장 눈에 띤 메서드는 readPassword 이다.

char[] passwd = conosole.readPassword("[패스워드를 입력해 주세요] : ");
if(passwd != null) {
       for(int i = 0; i < passwd.length ; i++) {
            //passwd 검증
       }
}

readPassword 는 readLine 메서드와 달리
char[] 으로 데이터를 받으며 사용자 입력 대해 'echo' 기능을 하지 않아 사용자 입력값을 화면에 뿌리지 않는다.

 사용자에게 입력 받을 값을 체크 하고 싶다면 Scanner 클래스를 사용하면 된다. 

Scanner scanner = new Scanner(console.reader()); 
int value = 0;
while(value != 1) {
    console.prinf("1를 입력하세요~");
    value = scanner.nextInt(); 
}

java.io.Console 은 사용자 입력 처리에 대해 유연한 구조를 제공하지만
Eclipse 에서의 Debug 로 실행 시 Console 인스턴스를 반환하지 못하는지 문제점이 있다.
해결방법은 http://efreedom.com/Question/1-104254/java-io-console-support-in-eclipse-ide 를 참조~
 원문주소:
http://blog.naver.com/jiruchi/10092518679
-------------------------------------------------------------------------------------------
 이클립스3.6.1에서 실행시 계속  null을 반환시켜 프로그램이 실행이 안되는데 도스창에서 직접 실행시키자..
console 기능을 이클립스에서는 지원하지않는걸로 추측됨..
https://bugs.eclipse.org/bugs/show_bug.cgi?id=122429 <- 관련페이지

관련 예제

import java.io.Console;

public class Test6 {
 public static void main(String[] args) {
  Console c = System.console();
  if(c == null) {
   //... do something
   System.err.println("Console Object is not available.");
   System.exit(1);
  }
  else{
   char[] pw  = c.readPassword("pw: ");
   if(pw !=null){
    System.out.print("You have entered password : ");
    System.out.println(pw);
    
   }
   c.format("\n");

  }
 }
}

'Programming Language > Java' 카테고리의 다른 글

eclipse jvm 못찾을때  (0) 2012.10.06
자바 파일 경로  (0) 2011.12.03
JAR안 파일 이미지 경로 설정  (0) 2011.12.02
[펌]JVM 메모리 누수  (0) 2011.11.20
[펌] 자바 성능 개선 코딩법  (0) 2011.11.14

+ Recent posts