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

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

Console co=System.console();
System.out.println(co);
try{
    String s=co.readLine();
}

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()를 정말로 사용하기 원한다면 이 방법을 읽어보세요.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.