BufferedWriter

pepe·2025년 11월 9일

Writer

Writer는 Java에서 문자(char 단위)를 출력(쓰기)하기 위한 추상 클래스
구현체는 다음과 같다.

대표적인 Writer 클래스설명
FileWriter텍스트를 파일에 쓰기 위한 Writer
BufferedWriterWriter에 버퍼를 추가해 성능을 향상시키는 Writer
PrintWriterprintln() 같은 편리한 메서드를 제공하는 Writer

BufferedWriter

FileWriter같은 Writer는 매번 디스크에 접근한다.

FileWriter fw = new FileWriter("a.txt");
fw.write("H");
fw.write("e");
fw.write("l");
fw.write("l");
fw.write("o");
fw.close();
//5번의 디스크 I/O
  • 단점
    write()가 호출될 때마다 바로 디스크에 기록됨
    write횟수가 많을수록 매우 느린 작업인 디스크I/O가 많이 일어난다.

  • 해결책
    데이터를 모았다가 한방에 쓰는 것

    write() → 버퍼(메모리)에 저장 → 버퍼가 차거나 flush() 또는 close() 호출될 때 한 번에 파일에 기록

BufferedWriter는 Writer에 버퍼를 추가한 클래스이다.

//FileWriter
//try with resource
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
    bw.write("Hello");
    bw.newLine(); // 개행 처리
    bw.write("BufferedWriter");
} catch (Exception e) {
    e.printStackTrace();
}
//Files
//try with resource
Path tempFile = Files.createTempFile(PATH, temp-, .json);
try(BufferedWriter bw = Files.newBufferedWriter(tempFile, StandardCharsets.UTF_8, StandardOpenOption.TRUNCATE_EXISTING)) {
	bw.write(json);
}
profile
pepe

0개의 댓글