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 |