자바에서 System.console() 메소드를 사용해서 어떻게 입력을 받을 수 있나요?


Console 클래스를 사용해서 사용자로부터 입력을 받고자 합니다. 그런데 System.console() 메소드를 호출하면 null 객체가 반환됩니다. System.console()을 사용하기 전에 뭔가를 바꿔야 하나요?

Console co=System.console();
System.out.println(co);
try{
    String s=co.readLine();
}
  • 2016년 05월 20일에 작성됨

조회수 117


1 답변


좋아요
0
싫어요
채택취소하기

IDE를 통한 입력이 아닌 콘솔에서 사용자 입력을 받기 위해서 Console을 다음과 같이 사용하시면 됩니다.

System.out.print("Enter something:");
String input = System.console().readLine();

어디서든 동작하는 다른 방법을 고민한다면:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {
    public static void main(String[] args) throws IOException { 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter String");
        String s = br.readLine();
        System.out.print("Enter Integer:");
        try{
            int i = Integer.parseInt(br.readLine());
        }catch(NumberFormatException nfe){
            System.err.println("Invalid Format!");
        }
    }
}

System.console()은 IDE에서 입력을 넣으면 null을 반환합니다

그래도 System.console()를 정말로 사용하기 원한다면 이 방법을 읽어보세요.

  • 2016년 05월 21일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close