🎬 상상해봐
너는 게임 캐릭터의 점수를 파일에 저장해야 해.
매번 게임이 끝날 때마다 점수를 파일에 저장하고, 게임을 시작할 때는 저장된 점수를 불러올 수 있어야 해.
그럴 때 파일 입출력을 사용하면, 데이터를 안전하게 저장하고 쉽게 불러올 수 있어!
📂 1. 파일 입출력이란?
파일 입출력은 파일을 통해 데이터를 읽고 쓰는 작업이야.
파일을 입력할 때는 파일에서 데이터를 읽어오고,
파일을 출력할 때는 데이터를 파일에 저장하는 작업을 해.
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("score.txt");
writer.write("게임 점수: 1000");
writer.close();
System.out.println("점수가 파일에 저장되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드는 FileWriter를 사용해서 "score.txt" 파일에 "게임 점수: 1000"을 저장하는 코드야.
파일 입출력을 통해 데이터를 파일에 기록할 수 있어!
📝 2. 파일 읽기 – FileReader 사용하기
파일을 읽으려면 FileReader 클래스를 사용해.
이 클래스를 이용하면, 파일에 저장된 데이터를 프로그램으로 불러올 수 있어.
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("score.txt");
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드는 FileReader를 사용해서 "score.txt" 파일을 읽고 내용을 출력하는 코드야.
파일을 읽고, 파일의 내용을 프로그램에서 출력할 수 있어!
💾 3. 파일 쓰기 – FileWriter 사용하기
파일에 데이터를 쓸 때는 FileWriter 클래스를 사용해.
FileWriter는 문자 단위로 데이터를 파일에 쓸 수 있어.
파일에 덮어쓰기 또는 이어쓰기 방식으로 데이터를 쓸 수 있어.
- 덮어쓰기: 파일이 이미 존재하면 기존 내용을 덮어씀
- 이어쓰기: 파일이 이미 존재하면 기존 내용 뒤에 추가함
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("score.txt", true); // 이어쓰기
writer.write("게임 점수: 1500\n");
writer.close();
System.out.println("점수가 파일에 추가되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileWriter를 사용해서 "score.txt" 파일에 데이터를 추가하는 코드야.
true 옵션을 넣으면 이어쓰기 모드로 동작해!
🛠️ 4. 파일 예외 처리 – 예외를 안전하게 처리하기
파일 입출력 작업은 파일이 존재하지 않거나, 권한이 없을 때 오류가 발생할 수 있어.
이럴 때 예외 처리를 사용해서 안전하게 오류를 처리할 수 있어.
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("nonexistent.txt"); // 존재하지 않는 파일
int data; while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
reader.close();
} catch (IOException e) {
System.out.println("파일을 찾을 수 없습니다!");
}
}
}
위 코드는 존재하지 않는 파일을 읽으려고 해서 예외가 발생하는 코드야.
이때 예외 처리로 오류를 안전하게 처리하고, 프로그램이 중단되지 않도록 했어.
🧠 5. 파일 입출력의 장점
- 데이터 저장: 파일을 사용해서 데이터를 영구적으로 저장할 수 있어.
- 파일로부터 데이터 읽기: 프로그램이 종료되어도 파일에서 데이터를 불러올 수 있어!
- 반복적인 작업 처리: 파일 입출력을 사용하면 반복적인 데이터 처리를 쉽게 할 수 있어.
🧩 6. 실전 미션 – 게임 점수 저장하고 불러오기
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
// 점수를 파일에 저장하기
FileWriter writer = new FileWriter("score.txt");
writer.write("게임 점수: 2000\n");
writer.close();
// 파일에서 점수 읽어오기
FileReader reader = new FileReader("score.txt");
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
게임 점수를 파일에 저장하고, 저장된 점수를 파일에서 읽어오는 코드야.
이렇게 하면 게임 종료 후 점수를 파일에 안전하게 저장하고, 다음에 게임을 시작할 때 불러올 수 있어!
🎮 실전 미션 – 점수 여러 번 추가하기
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
// 이어쓰기 모드로 파일에 점수 추가
FileWriter writer = new FileWriter("score.txt", true);
writer.write("게임 점수: 2500\n");
writer.close();
System.out.println("점수가 추가되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
이어쓰기 모드를 사용해서 점수를 계속 추가할 수 있어!
이렇게 하면 점수를 계속 파일에 추가하면서 기록을 남길 수 있어.
✨ 마무리 요약
파일 입출력을 사용하면, 프로그램에서 데이터를 파일에 저장하고, 파일에서 불러오는 작업을 할 수 있어!
이제 데이터 저장과 불러오기를 통해 파일을 활용한 프로그램을 만들 수 있어!
다음에는 자바 코딩을 마무리하며, 더욱 발전된 코드를 작성하는 방법을 배울 거야!
여기까지 잘 따라왔으면, 이제 자바 전문가의 길이 열렸어! 😎
'IT > java 코딩 기초' 카테고리의 다른 글
1️⃣3️⃣ 예외 처리 – 프로그램을 안전하게 보호하자! 🛡️🚀 (0) | 2025.04.14 |
---|---|
1️⃣2️⃣ 다형성 – 하나의 객체, 여러 형태로 변하다! 🌈✨ (0) | 2025.04.14 |
1️⃣1️⃣ 인터페이스 – 행동의 규칙을 정의하자! 🔑💡 (0) | 2025.04.14 |
🔟 상속 – 새로운 능력을 추가하자! 🦸♂️💥 (0) | 2025.04.14 |
9️⃣ 생성자 – 객체 탄생의 순간을 다루는 마법! 🎩✨ (0) | 2025.04.14 |