Java FileWriter 완전 가이드: 텍스트 파일 쓰기 마스터하기
Java FileWriter 완전 가이드: 텍스트 파일 쓰기 마스터하기
Java의 FileWriter로 파일에 문자 데이터를 쓰는 방법을 명확한 예제, 인코딩 옵션, 핵심 메서드와 함께 알아봅니다.
java.io 패키지의 FileWriter 클래스는 파일에 텍스트를 쓰는 간단한 도구입니다. OutputStreamWriter를 확장하며 명시적으로 설정하지 않는 한 플랫폼의 문자 인코딩을 기본값으로 사용합니다.
FileWriter를 더 깊이 다루기 전에 기본 Java 파일 처리를 이해하고 있는지 확인하세요.
FileWriter 생성하기
FileWriter를 인스턴스화하려면 먼저 클래스를 임포트합니다:
import java.io.FileWriter;
FileWriter를 생성하는 여러 방법이 있습니다:
- 파일명으로
FileWriter output = new FileWriter("output.txt");
File 객체로
File file = new File("output.txt");
FileWriter output = new FileWriter(file);
- 명시적 캐릭터셋으로 (Java 11+)
FileWriter output = new FileWriter("output.txt", StandardCharsets.UTF_8);
캐릭터셋 지정은 플랫폼 간 일관된 동작을 보장합니다.
FileWriter의 핵심 메서드
write()
write(int c) - 단일 문자를 씁니다.
write(char[] cbuf) - 문자 배열을 씁니다.
write(String str) - 문자열을 씁니다.
예제: 텍스트를 파일에 쓰기
import java.io.FileWriter;
public class Main {
public static void main(String[] args) {
String data = "This is the data in the output file";
try (FileWriter writer = new FileWriter("output.txt")) {
writer.write(data);
} catch (Exception e) {
e.printStackTrace();
}
}
}
이 프로그램을 실행하면 다음 내용의 output.txt가 생성됩니다:
This is the data in the output file
getEncoding()
getEncoding() 메서드는 라이터가 사용하는 캐릭터셋을 드러냅니다:
import java.io.FileWriter;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) {
try {
FileWriter defaultWriter = new FileWriter("output.txt");
FileWriter utf8Writer = new FileWriter("output.txt", StandardCharsets.UTF_8);
System.out.println("Default encoding: " + defaultWriter.getEncoding());
System.out.println("UTF-8 encoding: " + utf8Writer.getEncoding());
defaultWriter.close();
utf8Writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
출력:
Default encoding: Cp1252
UTF-8 encoding: UTF-8
신뢰할 수 있는 인코딩 이름을 위해 Charset.forName() 또는 StandardCharsets를 사용하세요.
팁: 더 깊은 내용은 공식 Java FileWriter 문서를 참조하세요.
close()
항상 FileWriter를 닫으세요(또는 try-with-resources 블록 사용) 버퍼를 플러시하고 시스템 리소스를 해제합니다. 닫은 후에는 라이터를 재사용할 수 없습니다.
기타 유용한 메서드
| 메서드 | 설명 |
flush() | 버퍼링된 데이터를 즉시 기본 스트림에 씁니다. |
append() | 문자나 문자열을 라이터에 편리하게 추가합니다. |
전체 메서드 목록은 공식 Java FileWriter API를 참조하세요.