JAVA · 파일/IO
BufferedReader/Writer 활용
버퍼링된 I/O로 파일 읽기/쓰기 성능을 최적화합니다.
파일/IO중급BufferedReaderBufferedWriter파일IO버퍼
핵심 설명
버퍼링된 I/O로 파일 읽기/쓰기 성능을 최적화합니다.
Java code
import java.io.*;
import java.nio.file.*;
import java.nio.charset.StandardCharsets;
public class BufferedIO {
public static void main(String[] args) throws IOException {
Path file = Files.createTempFile("buffered", ".txt");
// BufferedWriter — 쓰기
try (BufferedWriter writer = Files.newBufferedWriter(
file, StandardCharsets.UTF_8)) {
for (int i = 1; i <= 5; i++) {
writer.write("라인 " + i);
writer.newLine(); // OS에 맞는 줄바꿈
}
}
// BufferedReader — 읽기
try (BufferedReader reader = Files.newBufferedReader(
file, StandardCharsets.UTF_8)) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
// Stream으로 읽기 (대용량에 적합)
try (var lines = Files.lines(file, StandardCharsets.UTF_8)) {
long count = lines
.filter(l -> l.contains("라인"))
.count();
System.out.println("매칭 라인 수: " + count);
}
// PrintWriter — 편의 메서드
try (var pw = new PrintWriter(
Files.newBufferedWriter(file))) {
pw.println("printf 스타일");
pw.printf("이름: %s, 나이: %d%n", "홍길동", 30);
}
Files.deleteIfExists(file);
}
}학습 팁
Files.lines()은 지연(lazy) 스트림이라 대용량 파일도 메모리 효율적입니다. 전체를 메모리에 올리지 않습니다.
주의할 점
BufferedWriter.write()는 자동 줄바꿈을 하지 않습니다. newLine()을 직접 호출하거나 PrintWriter를 사용하세요.
자주 묻는 질문
BufferedReader/Writer 활용란 무엇인가요?
버퍼링된 I/O로 파일 읽기/쓰기 성능을 최적화합니다.
BufferedReader/Writer 활용 학습 시 주의할 점은 무엇인가요?
BufferedWriter.write() 는 자동 줄바꿈을 하지 않습니다. newLine() 을 직접 호출하거나 PrintWriter 를 사용하세요.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.