주제
- 정의
- BufferedReader와 BufferedWriter의 사용법
BufferdReader / BufferedWriter
- 버퍼를 통해 읽고 쓰는 함수
- 입출력 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후 전달 됨
- 속도가 빠르다
BufferedReader
- 입력 스트림에서 문자를 읽는 함수
- 문자나 배열, 라인들을 효율적으로 읽기 위해 문자들을 버퍼에 저장하고 읽는 방법을 취함(버퍼링)
- 버퍼 사이즈는 사용자 지정이 가능하고 기본 디폴트사이즈가 사용됨
- Enter만 경계로 인식하고 있음
- 입력된데이터 타입이 String으로 고정됨
사용 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public static void main(String[] args) throws IOException {
// 선언방법
BufferReader bf = new BufferedReader(new InputStreamReader(System.in));
// 라인 단위로 입력 받기(Enter 경계)
String str = bf.readLine();
// 정수형 입력시 형변환
int i = Integer.parseInt(bf.readLine());
// 공백을 경계로 끊어야 할 경우 1
String arr[] = str.split(" ");
// 공백을 경계를 끊어야 할 경우 2
StringTokenizer st = new StringTokenizer(str);
int a = Integer.parseInt(st.nextToken()); // 첫번째 호출
int b = Integer.parseInt(st.nextToken()); // 두번째 호출
bf.close() // 입출력 종료 후 닫기
}
BufferedWriter
- 한번에 모았다가 출력가능
- 버퍼를 정의해줬기 때문에 마지막에 반드시 flush() / close() 를 이용해 마무리 해야함
- System.out.println() 처럼 자동개행 기능이 없어 필요시 \n을 이용한 개행처리 필요
사용방법
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public static void main(String[] args) throws IOException {
// 선언방법
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "str";
// 출력
bw.writer(str);
// 개행
bw.newLine();
// 남아있는 모든 데이터 출력
bw.flush();
// 스트림 닫기
bw.close();
}
메소드
메소드 명 | 기능 |
BufferedReader(Reader rd) | rd에 연결되는 문자입력 버퍼 스트림 생성 |
BufferedWriter(Writer wt) | wt에 연결되는 문자 출력 버퍼스트림 생성 |
int read() | 스트림으로부터 한 문자를 읽어서 int 형으로 리턴 |
int read(char[] buf) | 문자 배열 buf의 크기만큼 문자를 읽어들임. 읽어들인 문자 수를 리턴 |
int read(char[] buf, int offset, int length) | buf의 offset위치에서부터 length길이 만큼 문자를 스트림으로부터 읽어들임 |
String readLint() | 스트림으로부터 한 줄을 읽어 문자열로 리턴 |
void mark() | 현재 위치를 마킹, 차후 reset()을 이용해 마킹위치부터 시작 |
void reset() | 마킹 존재시 그 위치부터 다시시간, 그렇지 않으면 처음부터 다시 시작 |
long skip(int n) | n개의 문자를 건너 뜀 |
void close() | 스트림 닫음 |
void writer(int c) | int 형으로 문자 데이터를 출력 문자 스트림으로 출력 |
void write(Sring s, int offset, int length) | 문저열 s를 offset위치부터 length길이 만큼을 출력스트림으로 출력 |
void write(char[] buf, int offset, int length) | 문자배열 buf의 offset위치부터 length 길이 만큼 출력스트림으로 출력 |
void newLine() | 줄바꿈 문자열 출력 |
void flush() | 남아 있는 데이터를 모두 출력시킴 |
'JAVA' 카테고리의 다른 글
[Java] StringBuilder 사용 방법 및 주요 메소드 (0) | 2022.06.16 |
---|