drexqq
[Java, 자바] BufferedReader, BufferedWriter 본문
BufferedReader/BufferedWriter는 Buffer에 있는 IO 클래스다.
입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후에 전달된다.
출력도 마찬가지로 버퍼를 거쳐서 간접적으로 출력장치로 전달된다.
때문에 시스템의 데이터처리 효율성을 높여주고 버퍼스트림을InputStreamReader / OutputStreamWriter를 같이 사용하여 버퍼링을 하게 되면 입출력 스트림으로부터 미리 버퍼에 데이터를 갖다 놓기 때문에 보다 효율적인 입출력이 가능하다.
BufferedReader
선언
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String s = bf.readLine(); //String
int i = Integer.parseInt(bf.readLine()); //Int
ps. readLine()시 리턴값을 String으로 고정, 예외처리를 꼭 해주어야한다는 점
데이터 가공
StringTokenizer st = new StringTokenizer(s); //StringTokenizer인자값에 입력 문자열 넣음
//StringTokenizer에 nextToken()함수를 쓰면 readLine()을 통해 입력받은 값을 공백단위로 구분하여 순서대로 호출
int a = Integer.parseInt(st.nextToken()); //첫번째 호출
int b = Integer.parseInt(st.nextToken()); //두번째 호출
//String.split()함수를 활용
String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음
BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));//선언
String s = "abcdefg";//출력할 문자열
bw.write(s+"\n");//출력
bw.flush();//남아있는 데이터를 모두 출력시킴
bw.close();//스트림을 닫음
ps. BufferedWriter의 경우 버퍼를 잡아 놓았기 때문에 반드시 flush() / close() 를 반드시 호출
개행을 해주어야할 경우에는 \n를 통해 따로 처리
메서드명 |
기능 |
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 readLine() |
스트림으로부터 한 줄을 읽어 문자열로 리턴 |
void mark() |
현재우치를 마킹, 차 후 reset() 을 이용하여 마킹위치부터 시작함 |
void reset() |
마킹이 있으면 그 위치에서부터 다시시각, 그렇지 않으면 처음부터 다시시작 |
long skip(int n) |
n 개의 문자를 건너 뜀 |
void close() |
스트림 닫음 |
void write(int c) |
int 형으로 문자 데이터를 출력문자스트림으로 출력 |
void write(String s, int offset, int length) |
문자열 s를 offset 위치부터 length 길이만큼을 출력스트림으로 출력 |
void write(char[] buf, int offset, int length) |
문자배열 buf의 offset 위치부터 length 길이만큼을 출력스트림으로 출력 |
void newLine() |
줄바꿈 문자열 출력 |
void flush() |
남아있는 데이터를 모두 출력시킴. |
'Back-End > Java' 카테고리의 다른 글
[Java, 자바] OOP(Object Oriented Programming) (0) | 2020.06.01 |
---|---|
[Java, 자바] Overloading(오버로딩) (0) | 2020.06.01 |
[Java, 자바] 함수(function, method), 가변인수 (0) | 2020.05.27 |
[Java, 자바] Sorting(정렬) - 선택 (0) | 2020.05.26 |
[Java, 자바] String클래스 (0) | 2020.05.26 |