개요
지금까지 출력 기능을 System.out.println()만 사용하다가 다른 분들 풀이를 보는데 다들 BufferedWriter을 사용하여 출력을 하는 걸 보고, 알아보고자 글을 작성한다.
📍정의
많은 양의 출력이 필요한 경우, BufferReader와 같이 동일하게 버퍼를 사용하는 것이 속도가 빠르기에 사용하는 기능
📍사용법
- System.out.println("")처럼 출력과 개행을 동시에 하지 않기에 개행을 위해서는 newLine(); 혹은 bw.write("n")을 사용해야 한다.
- BufferWrier의 경우 버퍼를 잡아 놓았기 때문에 사용한 뒤에 반드시 flush(), close()를 해주어야 한다.
- close()를 하게 되면 출력 스트림이 닫아지기 때문에 다른 출력이 남아있다면 flush를 사용하면 된다.
- 예외 처리 : 파일이나 출력 스트림에 데이터를 쓰는 과정에서 예외가 발생할 수 있기에 , IOException을 처리하는 코드를 작성해야 한다.
📍주요 메서드
void close() | 스트림을 닫는다 (닫기 전 flush()) |
void flush() | 스트림을 비운다 |
void newLine | 개행 문자 역할 |
void write(char[] buf, int offset, int length) | 버퍼 offset위치부터 length 크기 만큼 write |
void write(int c) | 한 글자 쓰기 |
void write(String s, int offset, int length) | 문자열에서 offset에서부터 일정 길이 만큼 write |
*flush() : BufferWriter은 기본적으로 데이터를 즉시 출력하지 않기에, 출력이 완료되기 전 flush()를 호출하여 버퍼에 남아있는 데이터를 강제로 출력할 수 있다. 또, 스트림을 닫을 때 자동 호출된다.
📍사용 예시
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterExample {
public static void main(String[] args) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
writer.write("Hello, World!");
writer.newLine(); // 새로운 줄 삽입
writer.write("BufferedWriter example.");
writer.flush(); // 버퍼에 있는 내용을 파일에 쓰기
writer.close(); // 스트림을 닫고 리소스를 해제
} catch (IOException e) {
e.printStackTrace();
}
}
}
'Language > JAVA' 카테고리의 다른 글
[쉽게 배우는 자바 프로그래밍 - 2판] 7장 연습문제 (1) | 2024.12.14 |
---|---|
[쉽게 배우는 자바 프로그래밍 - 2판] 6장 연습문제 (0) | 2024.12.13 |
[쉽게 배우는 자바 프로그래밍 - 2판] 5장 연습문제 (0) | 2024.12.08 |
[쉽게 배우는 자바 프로그래밍 - 2판] 4장 연습문제 (0) | 2024.12.08 |
[쉽게 배우는 자바 프로그래밍 - 2판] 3장 연습문제 (1) | 2024.12.08 |