2012-05-20 3 views
-1

내 코드에서 출력을 얻기 위해 console()의 버퍼 istead를 사용할 때의 차이점은 무엇입니까?버퍼와 콘솔간에 차이가 있습니까?

+0

그게 무슨 뜻입니까? – Satya

+1

죄송하지만 ... 나는 System.console() .... 대신에 scanner.nextLine에 대해 물어 보았습니다. – Vinit

+0

그리고 어떤 버퍼에 대해 얘기하고 있습니까 – Satya

답변

1

Console 클래스는, System.console()에 의해 사용이 대상으로 보인다 대화 문자 기반의 I/O, 윈도우에서 cmd.exe 윈도우 나 유닉스 계열 시스템에서 터미널로 실제 콘솔에서 제공한다. 따라서 기본 OS 및 JVM 시작 방법에 따라 시스템 콘솔을 항상 사용할 수있는 것은 아닙니다.

한편, Scanner은 파일 및 표준 입력을 포함한 모든 입력 스트림에서 작동합니다. 더 유연하지만 콘솔로 다시 보내지 않고 텍스트 (일반적으로 암호)를 읽을 수있는 기능과 같이 Console이 수행하는 콘솔 특정 기능은 제공하지 않습니다.

0

Console 클래스를 사용하면 명령 줄에서 입력을 받아들이 기 쉽습니다 (에코와 에코 모두 포함). Unechoed는 페이스 북에 암호를 입력 할 때와 같이 텍스트 (예 : *,? 등)를 쓰는 동안 콘솔에 특수 문자가 있음을 의미합니다. :) 그것의 format() 방법은 또한 명령 행에 형식화 된 출력을 쉽게 작성합니다 (* 피라미드 나 형식화 된 날짜 및 통화 형식 등). 또한 단위 테스트를위한 테스트 엔진을 작성하는 데 도움이됩니다. 또는 실제 간단한 응용 프로그램을 만들려는 경우 GUI (Graphical User Interface) 대신 간단한 CLI (명령 줄 인터페이스)를 제공하는 데 사용할 수 있습니다. 그리고 네, 또한 시스템에 의존합니다. 즉, 콘솔 인스턴스를 제공하기 위해 항상 시스템에 의존 할 수는 없습니다.

버퍼링에 관해서는 실제로 스트림과 상호 작용할 때 I/O (즉, 입출력 모두)에서 사용되는 기술입니다 (콘솔 또는 소켓 또는 문자 스트림 또는 바이트 스트림 일 수 있습니다. 파일). 그것은 기본적으로 read()write() 메쏘드에 대한 다중 호출을 피함으로써 I/O를 가속화하고 시스템 자원을 절약하는데 사용된다. 거의 모든 종류의 I/O 상호 작용에서 사용하는 것이 좋습니다.