본문 바로가기
코딩/java

[java] 8. 입력과 출력

by lazy_nyoung 2023. 2. 4.

자바에서는 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