Java 파일 조작 가이드: NIO.2 실전 팁
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

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.iojava.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의 장점과 사용 예제

  • PathFile보다 유연한 경로 처리, Files는 간단한 파일 조작 메서드 제공
  • 예제:

```java

List linhas = Files.readAllLines(Paths.get("tarefas.txt"));

```

  • 파일 복사:

```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로 실무 적용해보기