728x90
1. 파일 읽기
BuffredReader는 파일을 한 줄씩 읽을 때 효율적인 코드이며, 내부적으로 버퍼를 사용해 읽기 성능을 올려줍니다.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderExample {
public static void main(String[] args) {
String filePath = "output.txt";
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
// Process the line read from the file
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- FileReader: 파일에서 문자를 읽어오는 기본 클래스
- BuffredReader: 읽기 속도를 높혀, readline() 같은 편리한 메서드 제공
- try-with-resources: 파일 닫기 자동 처리(close() 불필요함)
2. 파일 쓰기
BuffredWriter는 문자열을 버퍼에 모으고 한 번에 써서 속도가 빠릅니다
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterExample {
public static void main(String[] args) {
String filePath = "output.txt";
try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) {
bw.write("Hello,World!");
bw.newLine(); // Write a new line
bw.write("This is a test file");
} catch (IOException e) {
e.printStackTrace();
}
}
}
- FileWriter : 파일에 문자 쓰기
- BuffredWriter: 쓰기 속도 향상, newLine() 지원
- append 모드: new FileWriter(filePath, true) 뒤에 내용 추가 가능
3. 읽기 + 쓰기 (파일 복사)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopyExample {
public static void main(String[] args) {
String source = "output.txt";
String description = "description.txt";
try (BufferedReader br = new BufferedReader(new FileReader(source)); BufferedWriter bw = new BufferedWriter(new FileWriter(description))) {
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine(); // Write a new line after each line read
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- BuffredReader: readLine()으로 한 줄씩 읽기
- BuffredWriter: 버퍼에 모아뒀다 한 번에 쓰기, 줄바꿈은 newLine()
- try-with-resources: close() 자동 호출, 자원 누수 방지
- FileReader / FileWriter도 사용 가능하나, 큰 파일을 처리할 때 Buffred 계열을 사용하는 것이 성능에 유리
GitHub - Koras02/java-bloging: https://thinky.tistory.com/category/Back-End/Java
https://thinky.tistory.com/category/Back-End/Java. Contribute to Koras02/java-bloging development by creating an account on GitHub.
github.com
728x90
LIST
'Back-End > Java' 카테고리의 다른 글
[Java] 12장 프로젝트 생성(완) (0) | 2025.08.12 |
---|---|
[Java] 11장 멀티 스레딩 (4) | 2025.08.10 |
[Java] 9장 컬렉션 프레임워크 (0) | 2025.03.25 |
[Java] 8장 try-catch 문 (0) | 2025.03.18 |
[Java] 7장 인터페이스 (0) | 2025.03.08 |