본문으로 건너뛰기
Java 기초집LESSON 20

파일 입출력: 게임 기록을 텍스트 파일로 저장하고 읽기

난이도입문 → 초급
예상 시간35분
선수지식이전 강의

20강. 파일 입출력: 게임 기록을 텍스트 파일로 저장하고 읽기

1. 이번 강의에서 해결할 문제​

프로그램을 종료하면 메모리 List가 사라집니다. 경로·문자 인코딩·예외와 파일 교체 실패를 고려해 로컬 파일로 보존해야 합니다.

2. 학습 목표​

3. 핵심 개념​

Path는 운영체제 경로를 값으로 표현하고 Files는 작은 텍스트 파일의 읽기·쓰기를 제공합니다. checked IOException은 호출자가 처리하거나 throws로 전달해야 합니다. 실제 중요한 데이터는 임시 파일에 완전히 쓴 뒤 교체하는 방식이 더 안전하지만 이 과정은 로컬 학습 파일만 다룹니다.

4. 단계별 실습​

1. src/FileRecordStore.java 작성​

실행 환경: 코드 편집기

실행 위치: C:\dev\game-records

실행 전 확인: 같은 이름의 기존 파일이 있다면 덮어쓰기 전에 Git diff와 이번 강의 변경 범위를 확인합니다.

대상 파일: src/FileRecordStore.java

src/FileRecordStore.java
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;

public class FileRecordStore {
private static final Path FILE = Path.of("data", "records.txt");

public static void main(String[] args) {
List<String> lines = List.of("Alice ranked 1350 28", "Bob casual 820 16");
try {
Files.createDirectories(FILE.getParent());
Files.write(FILE, lines, StandardCharsets.UTF_8);
List<String> loaded = Files.readAllLines(FILE, StandardCharsets.UTF_8);
loaded.forEach(System.out::println);
} catch (IOException e) {
System.err.println("기록 파일 처리 실패: " + e.getMessage());
}
}
}

2. PowerShell에서 컴파일·실행​

실행 환경: Windows PowerShell

실행 위치: C:\dev\game-records

실행 전 확인: java -version과 javac -version이 선택한 LTS JDK를 가리키고, 소스 파일명이 public 클래스명과 일치하는지 확인합니다.

대상: 이 강의의 .java 파일, out의 class 파일과 명시된 출력 파일

Windows PowerShell
Set-Location C:\dev\game-records
javac -d out .\src\FileRecordStore.java
java -cp out FileRecordStore
Get-Content .\data\records.txt

예상 결과: data/records.txt가 UTF-8로 생성되고 두 기록이 프로그램과 PowerShell에서 출력됩니다.

5. 코드가 동작하는 이유​

Files.createDirectories는 부모 폴더가 없을 때 만들고 이미 있으면 유지합니다. 탭 구분은 필드 경계를 보존하며 명시한 UTF-8이 저장과 읽기에 동일하게 적용됩니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

파일 입출력: 게임 기록을 텍스트 파일로 저장하고 읽기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“파일 입출력: 게임 기록을 텍스트 파일로 저장하고 읽기” 실행 결과를 설명하는 내용으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2‘현재 작업 폴더를 확인하지 않고 상대 경로 쓰기’ 상태에 관한 “파일 입출력: 게임 기록을 텍스트 파일로 저장하고 읽기” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

20강. 파일 입출력: 게임 기록을 텍스트 파일로 저장하고 읽기 미완료 상태