콘솔 입출력

2022. 4. 28. 21:55java/java

 

*CONSOLE

 1) 시스템을 사용하기 위해 키보드로 입력을 받고 화면으로 출력하는 소프트웨어

 2) unix, linux : 터미널

 3) Windows 운영체제 : 명령 프롬프트

 4) 이클립스 : console 뷰

 

*System.in 필드

 

1) InputStream타입의 입력 스트림이므로 InputStream 변수에 대입할 수 있다.

InputStream is = Ststem.in;

2) 읽은 byte는 키보드의 아스키 코드이다.

int asciiCode = is.read();

3)아스키 코드로부터 문자 읽기

char InputChar = (char)is.read();

 

4)키보드로부터 입력된 한글 읽기 (한글은 2byte이기 때문에 최소 2byte이상으로 할 것)

byte[] byteData = new byte[15];
int readByteNO = System.in.read(byteData);
    읽은 바이트 수   실제로 읽은 바이트가 저장

아스키 코드로 저장된 데이터를 문자열로 변환

String strData = new String( byteData, 0, readbyteNo-2);
                            바이트 배열 | 읽은 바이트수-2(읽은 바이트 수 : 6 -(엔터키, 인덱스는 0부터
                                   시작인덱스                                          시작이니 -1 한번 더

 

*System.out 필드

1) printStream 타입의 출력 스트림이므로 OutputStream으로 타입 변환할 수 있다.

OutputStream os = System.out;

2)아스키 코드를 출력하면 콘솔에는 문자가 출력된다.

byte b = 97
os.write(b)
os.flush();

3)문자열을 출력하려면 바이트 배열을 얻어야 한다.

String name = "홍길동";
byte[] nameBytes = name.getBytes();  //바이트 배열에 문자열을 바이트로 변환시켜 입력
os.write(nameBytes);
os.flush();

PrintStream ps = System.out
ps.println(...); -----------------------> 줄여서 System.out.println(...);

 

 

*Console 클래스

1) 자바 6부터 콘솔에서 입력된 문자열을 쉽게 읽을 수 있도록 Console 클래스 제공

Console console = System.Console();

 -이클립스에서 System.console() 은 null을 리턴하기 때문에

  명령 프롬프트에서 반드시 실행해야 한다.

 

 2) Console의 읽기

*Scanner 클래스

1) Console 클래스의 단점

 - 문자열은 읽을수 있지만 기본 타입(정수 , 실습) 값을 바로 읽을 수는 없다.

 

2) java.util.Scanner

 - 콘솔로부터 기본 타입의 값을 바로 읽을 수 있다.

Scanner scanner = new Scanner(System.in)

 - 제공하는 메서드

'java > java' 카테고리의 다른 글

XML 정의와 사용법 (미완성)  (0) 2022.04.29
데몬 스레드  (0) 2022.04.29
스레드 상태 제어  (0) 2022.04.28
입력스트림과 출력 스트림 개념(2)  (0) 2022.04.26
스레드 상태  (0) 2022.04.26