SMALL
📚 10강: 파일 입출력 (File I/O)
🚀 1. 파일 입출력(File I/O)이란?
- **파일 입출력(File I/O)**은 프로그램이 파일을 읽거나 쓰는 작업을 의미합니다.
- Java는 파일 I/O를 위해 java.io 및 java.nio 패키지를 제공합니다.
- 주요 작업:
- 파일 읽기(Read)
- 파일 쓰기(Write)
- 파일 추가(Append)
🚀 2. 주요 클래스 및 개념
📌 2.1 파일 입출력 주요 클래스
클래스 | 설명 |
File | 파일과 디렉터리를 다루는 클래스 |
FileReader | 문자 단위로 파일 읽기 |
FileWriter | 문자 단위로 파일 쓰기 |
BufferedReader | 텍스트 파일을 효율적으로 읽기 |
BufferedWriter | 텍스트 파일을 효율적으로 쓰기 |
FileInputStream | 바이트 단위로 파일 읽기 |
FileOutputStream | 바이트 단위로 파일 쓰기 |
🚀 3. 파일 쓰기 (File Writing)
📌 3.1 FileWriter를 사용한 파일 쓰기
import java.io.FileWriter;
import java.io.IOException;
public class FileWriteExample {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("output.txt");
writer.write("Hello, Java File I/O!\n");
writer.write("This is a file writing example.\n");
writer.close();
System.out.println("파일 쓰기 완료!");
} catch (IOException e) {
System.out.println("파일 쓰기 중 오류 발생: " + e.getMessage());
}
}
}
📌 출력 결과:
파일 쓰기 완료!
📌 설명:
- FileWriter 객체로 파일을 생성하거나 기존 파일을 덮어씁니다.
- write() 메서드로 파일에 문자열을 씁니다.
- close() 메서드로 파일 리소스를 해제합니다.
🚀 4. 파일 읽기 (File Reading)
📌 4.1 FileReader를 사용한 파일 읽기
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("output.txt");
int character;
while ((character = reader.read()) != -1) {
System.out.print((char) character);
}
reader.close();
} catch (IOException e) {
System.out.println("파일 읽기 중 오류 발생: " + e.getMessage());
}
}
}
📌 출력 결과:
Hello, Java File I/O!
This is a file writing example.
📌 설명:
- FileReader를 사용해 문자 단위로 파일을 읽습니다.
- read() 메서드로 한 문자씩 읽고 출력합니다.
- close() 메서드로 파일 리소스를 해제합니다.
🚀 5. BufferedReader & BufferedWriter
📌 5.1 BufferedWriter로 파일 쓰기
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt", true))) {
writer.write("BufferedWriter를 사용해 파일에 추가합니다.\n");
writer.close();
System.out.println("BufferedWriter: 파일 쓰기 완료!");
} catch (IOException e) {
System.out.println("오류: " + e.getMessage());
}
}
}
📌 5.2 BufferedReader로 파일 읽기
}
📌 5.2 BufferedReader로 파일 읽기
java
코드 복사
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("output.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("오류: " + e.getMessage());
}
}
}
📌 설명:
- BufferedWriter는 파일에 데이터를 효율적으로 씁니다.
- BufferedReader는 파일을 한 줄씩 읽을 수 있습니다.
🚀 6. 파일 존재 여부 확인 및 삭제
📌 6.1 File 클래스를 사용한 파일 관리
import java.io.File;
public class FileManagementExample {
public static void main(String[] args) {
File file = new File("output.txt");
// 파일 존재 여부 확인
if (file.exists()) {
System.out.println("파일이 존재합니다: " + file.getAbsolutePath());
} else {
System.out.println("파일이 존재하지 않습니다.");
}
// 파일 삭제
if (file.delete()) {
System.out.println("파일이 삭제되었습니다.");
} else {
System.out.println("파일 삭제 실패.");
}
}
}
🚀 7. 파일 입출력 예외 처리
- 파일 작업 중 예외 발생 가능성:
- 파일이 존재하지 않을 때
- 접근 권한이 없을 때
- 디스크 공간 부족
- IOException 및 FileNotFoundException 예외 처리가 필요합니다.
🚀 8. 실습 과제
✅ 1. 파일 쓰기
- 사용자로부터 문자열을 입력받아 user_input.txt 파일에 저장하세요.
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class FileWriteExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("저장할 문자열을 입력하세요: ");
String input = scanner.nextLine();
try (FileWriter writer = new FileWriter("user_input.txt")) {
writer.write(input);
System.out.println("입력한 내용이 user_input.txt 파일에 저장되었습니다.");
} catch (IOException e) {
System.out.println("파일 쓰기 중 오류 발생: " + e.getMessage());
} finally {
scanner.close();
}
}
}
✅ 2. 파일 읽기
- user_input.txt 파일을 읽고 내용을 출력하세요.
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try (FileReader reader = new FileReader("user_input.txt")) {
int character;
System.out.println("파일 내용:");
while ((character = reader.read()) != -1) {
System.out.print((char) character);
}
} catch (IOException e) {
System.out.println("파일 읽기 중 오류 발생: " + e.getMessage());
}
}
}
✅ 3. 파일 추가
- user_input.txt 파일에 추가로 문자열을 쓰세요.
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class FileAppendExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("추가할 문자열을 입력하세요: ");
String input = scanner.nextLine();
try (FileWriter writer = new FileWriter("user_input.txt", true)) {
writer.write("\n" + input);
System.out.println("입력한 내용이 user_input.txt 파일에 추가되었습니다.");
} catch (IOException e) {
System.out.println("파일 추가 중 오류 발생: " + e.getMessage());
} finally {
scanner.close();
}
}
}
✅ 4. 파일 존재 확인 및 삭제
- user_input.txt 파일의 존재 여부를 확인하고, 삭제하세요.
import java.io.File;
public class FileCheckDeleteExample {
public static void main(String[] args) {
File file = new File("user_input.txt");
// 파일 존재 여부 확인
if (file.exists()) {
System.out.println("파일이 존재합니다: " + file.getAbsolutePath());
// 파일 삭제
if (file.delete()) {
System.out.println("파일이 성공적으로 삭제되었습니다.");
} else {
System.out.println("파일 삭제에 실패했습니다.");
}
} else {
System.out.println("파일이 존재하지 않습니다.");
}
}
}
🎯 9. 학습 목표
- FileWriter와 FileReader를 사용해 파일을 읽고 쓸 수 있다.
- BufferedWriter와 BufferedReader로 효율적인 파일 입출력을 할 수 있다.
- File 클래스를 사용하여 파일의 존재 여부를 확인하고 삭제할 수 있다.
- 예외 처리(IOException)를 통해 안전하게 파일 작업을 할 수 있다.
✅ 다음 강의 예고: 11강 - 스레드 (Thread)
다음 강의에서는 **자바 스레드(Thread)**를 학습합니다. 😊
LIST
'자바 (JAVA)' 카테고리의 다른 글
📚JAVA 12강: JDBC (Java Database Connectivity) (0) | 2025.01.03 |
---|---|
📚 JAVA 11강: 스레드(Thread) (1) | 2025.01.03 |
📚 JAVA 9강: 컬렉션 프레임워크 (Collection Framework) (0) | 2025.01.03 |
📚 JAVA 8강: 예외 처리 (Exception Handling) (0) | 2025.01.03 |
📚 JAVA 7강: 객체 지향 프로그래밍 (OOP) - 추상 클래스와 인터페이스 (0) | 2025.01.03 |