자바에서는 Scanner와 System.out.println으로 입력과 출력을 할 수 있습니다.
java.io 패키지의 BufferedReader와 BufferedWriter 클래스로 더 빠른 입출력이 가능하나,
위의 입출력 방식이 간단하여 자주 사용합니다.
클래스 scanner
콘솔에 입력하는 다양한 자료 값을 입력받으려면 클래스 java.util.Scanner를 사용.
-입·출력 메소드
다음 토큰인 문자열 입력 - next()
Boolean | nextBoolean() |
byte | nextByte() |
short | nextShort() |
int | nextInt() |
long | nextLong() |
double | nextDouble() |
float | nextFloat() |
String | nextLine() |
*nextInt(2) (다음 토큰인 정수를 이진수로 입력받아 int형으로 반환, 8진수는 nextInt(8), 16진수는 nextInt(16) )
*만약 데이터 형식이 맞지 않는다면 imputMismatchException이 발생
클래스 System (필드 out, in, err)
콘솔에 표준 출력하기 위해 클래스 System의 필드 out을 사용.
클래스 System은 기본 패키지인 java.lang 에 속함, 소속된 변수 out은 static이므로 그대로 System.out을 사용가능.
필드 - err, in, out 3가지
System.out.print() - 콘솔에 다양한 자료형의 인자를 출력.
System.out.printf()는 C언어의 printf()와 같은 기능의 출력함수, 출력형태를 문자열로 표시, 실제 출력 인자는 뒤에 기술하는 방식. 첫 번째 인자는 형식 문자열, 내부의 %d는 이후 인자의 값이 대체되어 출력되는 형식 지정자. (= format())
BufferedReader
BufferedReader 생성 시, InputStreamReader와 System.in 이 함께 생성됨.
System.in은 자바의 표준 입출력을 위한 입출력 스트림 중에 하나로 ,콘솔로부터 데이터를 입력받을 수 있게 함.
InputStreamReader는 BufferedReader와 System.in을 연결해주는 역할.
바이트 기반 스트림 -> 문자 기반 스트림 (변환작업 수행)
BufferedWriter
OutputStreamWriter와 System.out을 이용하여 객체를 생성.
System.out은 콘솔로 데이터를 출력/OutputStreamWriter는 OS의 인코딩대로 문자로 변환.
BufferedWriter는 write 메서드를 이용해 출력가능.
자동 개행(줄바꿈)이 되지 않으므로, 필요시, newLine() 메서드를 이용해야 함.
출력 내용은 버퍼에 저장, 버퍼가 가득 차면 그 내용들을 출력 소스에 출력.
마지막 출력 부분은 버퍼에 남아 제대로 출력되지 못하고 프로그램이 종료될 수 있으므로,
flush()나 close() 메서드를 사용하여 버퍼에 남아있는 모든 데이터를 출력시켜주어야 함!
'코딩 > java' 카테고리의 다른 글
[java] 10. 추상클래스와 인터페이스 (0) | 2023.02.06 |
---|---|
[java] 9. 상속 (0) | 2023.02.05 |
[java] 7. 객체 지향 프로그래밍(객체, 클래스) (0) | 2023.02.02 |
[java] #6 배열 (0) | 2023.02.02 |
[java] #3 숫자열과 문자열 (0) | 2023.02.01 |