개발도생's Blog
[Java][Class] BufferedWriter 본문
이번에는 BufferedWriter에 대해 공부를 해봤다.
BufferedWriter Class는,
BufferedReader Class와 마찬가지로 버퍼(Buffer)에 값을 저장해두었다가
한 번에 값을 반환해주기 때문에 알고리즘 측면에서 효율성이 높다.
보통 사용하는 Scanner Class와 System.out.print는 데이터의 양이 증가할수록 효율이 떨어지기 때문에
많은 양의 데이터를 처리할 때 BufferedWriter Class를 사용한다면 유용할 것이다.
BufferedWriter Class에 대해서
BufferedReader와 BufferedWriter Class는 일반 입출력과는 달리 Buffer공간에 임시로 값을 저장해두었다가 Enter(개행) 혹은 버퍼가 가득 찼을 때 저장된 값을 한 번에 반환해준다.
그렇기 때문에 처리 속도에서 차이가 난다는 것을 확인할 수 있는 것이다.
BufferedReader는 입력을 할 때 사용한다면 BufferedWriter는 출력을 할 때 사용한다.
버퍼(Buffer)를 사용할 때, InputWtream과 OutputStream을 사용하는 이유가 입출력 스트림으로 부터 미리 버퍼에 데이터를 담아주기 위해서이다.
BufferedWriter Class 사용법
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class BufferedWriter {
public static void main(String[] args) throws IOException {
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
}
}
BufferedWriter는 예외 처리를 필수적으로 해줘야 하며, try & catch 보다는 throws IOException으로 예외처리를 해주는 방법을 더 많이 사용하고 있다.
객체 선언은 위와 같은 방법으로 해주면 된다.
// write() , flush() , close() 메서드
String string = "안녕하세요."; // 출력할 문자열
BufferedWriter.write("string + \n"); // 버퍼에 있는 값 출력
BufferedWriter.write("반갑습니다.");
BufferedWriter.flush(); // 남아 있는 데이터를 모두 출력
BufferedWriter.close(); // 스트림 닫음
BufferedWriter Class에서 제공하고 가장 많이 사용하는 메서드이다.
BufferedWriter는 개행을 동시에 해주기 않기 때문에 write() 메서드에 개행을 따로 입력해주거나,
제공된 메서드 중 newLine()를 사용해야 한다.
write()메서드를 통해 버퍼에 값을 출력해주고, flush() 메서드를 통해 버퍼에 남아 있는 모든 값들을 출력해준다.
사용이 끝난 후에는 close() 메서드를 사용해 스트림을 종료해주어야 한다.
위와 같이 입력했을 때 출력되는 값은 예상할 수 있듯,
안녕하세요.
반갑습니다.
위와 같이 출력되는 것을 확인할 수 있다.
BufferedWriter Class Method
조금 더 깊숙하게 파고들어 공부한다면 더 많은 내용들을 알 수 있을 거 같다.
혹시나 더 많은 정보를 공유해주실 수 있거나, 해당 클래스에 중요한 내용이 빠져있다면 댓글로 공유해주시면 감사하겠습니다.
더 깊이 공부해서 보다 좋은 내용과 유익한 정보를 제공할 수 있도록 하겠습니다!
'Java > Class' 카테고리의 다른 글
[Java][Class] Random (0) | 2023.03.20 |
---|---|
클래스(Class), 객체(Object), 인스턴스(Instance) (0) | 2022.12.20 |
[Java][Class] StringBuilder (0) | 2022.12.09 |
[Java][Class] StringTokenizer (0) | 2022.12.02 |
[Java][Class] Bufferedreader (0) | 2022.11.29 |