자바에서 입출력은 Scanner / System.out.print()
보통 많이 이용한다.
하지만 간혹 알고리즘 문제를 풀다보면 더 빠르게
입력과 출력을 해야하는 상황이 생긴다.
이럴때 Bufferedreader / BufferedWriter 를 사용한다
BufferedReader
- 말 그대로 버퍼를 이용하여 입력하는 것이다.
- 입력 값을 한방에 출력하기 위해 버퍼에 값을 저장한다.
- Bufferedreader는 Enter만 경계로 인식하고 받은 데이터를 String으로 고정시키기 때문에 후 가공 작업이 필요하다.
(Scanner는 입력을 받을 때 Space, Enter를 경계로 인식하기에 입력받은 데이터에 대한 가공이 편리하다.)
BufferedWriter
- 말 그대로 버퍼를 이용하여 출력하는 것이다.
StringTokenizer
- StringTokenizer 의 nextToken()를 이용하면 입력 값이 공백 단위로 끊어서 저장이 된다
import java.io.*;
import java.util.StringTokenizer;
public class IO{
public static void main(String[] args) throws IOException {
//2개의 입력 값을 호출 한다고 가정을 할 것임
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//String 받기
String stringInput = br.readLine();
//만일 int로 받고 싶다면
//int intInput = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(stringInput);
int a = Integer.parseInt(st.nextToken()); // 첫번째 호출
int b = Integer.parseInt(st.nextToken()); // 두번째 호출
String p = "TestInputOutput";
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(p + "\n"); //출력
bw.flush(); // 남아있는 데이터 모두 출력
bw.close();// 스트림 완전 닫기
}
}
참고
https://doozi316.github.io/java/2021/03/22/JAVA1/
https://devlog-wjdrbs96.tistory.com/96
반응형
'개발 > 자바' 카테고리의 다른 글
(자바) 이클립스 자동 완성 단축키 (0) | 2022.03.13 |
---|---|
의존성 역전 원칙 (DIP, Dependency Inversion Principle) (0) | 2022.02.15 |
REST(Representational State Transfer) (1) | 2022.01.13 |
자바 2차원 배열 (0) | 2022.01.10 |
Interface (0) | 2021.12.27 |
댓글