Java 파일 조작 가이드: 실전 팁과 예제
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
Java 초보자 및 파일 조작 기초를 배우고자 하는 개발자
난이도: 기초 수준 (구체적인 예제와 코드 포함)
핵심 요약
File
클래스는 파일 존재 여부 확인, 생성, 삭제 등의 기본 조작을 제공 (예:exists()
,createNewFile()
)- 스트림(Byte/Character)을 통해 바이너리 파일(예:
FileInputStream
) 및 텍스트 파일(예:FileWriter
) 조작 가능 - NIO.2(Java 7 이상)는
Path
,Files
클래스로 파일 조작을 간결하고 안전하게 처리 (예:Files.readAllLines()
) - 실무 팁:
try-with-resources
사용, 예외 처리 필수, NIO.2가 신규 프로젝트에 적합
섹션별 세부 요약
1. 파일의 역할과 Java의 접근 방식
- 파일은 프로그램 종료 후 데이터를 보존(persist)하기 위해 사용됨
- 예: 할 일 앱은
.txt
파일에 데이터 저장, 게임은 이진 파일로 진행도 저장 - Java는
java.io
및java.nio.file
패키지를 통해 파일 조작 지원
2. `File` 클래스 기능 및 예제
File
은 파일 경로를 가리키는 객체로, 실제 파일 내용 읽기/쓰기는 하지 않음- 주요 메서드:
exists()
,isFile()
,createNewFile()
,list()
- 예제:
```java
File arquivo = new File("dados.txt");
if (arquivo.exists()) { ... }
```
3. 스트림 기반 파일 조작
- 바이트 스트림:
FileInputStream
/FileOutputStream
(이미지,.zip
) - 캐릭터 스트림:
FileReader
/FileWriter
(.txt
) - 성능 향상:
BufferedReader
/BufferedWriter
사용,RandomAccessFile
은 임의 접근 가능
4. NIO.2의 장점과 사용 예제
Path
는File
보다 유연한 경로 처리,Files
는 간단한 파일 조작 메서드 제공- 예제:
```java
List
```
- 파일 복사:
```java
Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING);
```
5. NIO.2 vs `java.io` 비교
- NIO.2의 장점:
- 코드 간결성 (예: readAllLines()
한 줄로 처리)
- 자동 리소스 관리 (예: try-with-resources
)
- 대규모 파일 처리 시 버퍼링 지원
java.io
의 활용: 간단한 작업 또는 오래된 코드 호환 시
결론
- NIO.2를 신규 프로젝트에 사용하고,
try-with-resources
및 예외 처리(try-catch
) 적용 - 경로 호환성 고려: Windows
\
와 Linux/
구분 java.io
으로 개념 학습 후 NIO.2로 실무 적용해보기