▶ Java File Handling |
Java Files |
Java Create-Write Files |
Java Read Files |
Java Delete Files |
Java Files
자바 파일 처리 (Java Files): 개념 및 사용법
자바에서 파일 처리는 파일을 생성, 읽기, 쓰기, 삭제 등의 작업을 할 수 있도록 다양한 클래스와 메서드를 제공합니다. 자바의 파일 처리 기능은 **
.io
**와 .nio.file
패키지를 통해 제공되며, 이 두 패키지를 사용하면 파일 입출력 작업을 쉽게 수행할 수 있습니다.
1. 파일 처리 주요 클래스
자바에서 파일 처리를 위해 사용하는 주요 클래스들은 다음과 같습니다:
File
클래스 (.io.File
): 파일이나 디렉토리를 나타내는 클래스로, 파일의 경로, 파일 존재 여부, 삭제 등을 처리할 수 있습니다.FileReader
/FileWriter
클래스: 텍스트 파일을 읽고 쓰는 데 사용되는 클래스.BufferedReader
/BufferedWriter
클래스: 파일을 효율적으로 읽고 쓰기 위한 버퍼링 클래스.Scanner
클래스: 텍스트 파일을 읽기 위한 클래스.Files
클래스 (.nio.file.Files
): 파일 작업을 수행하는 유틸리티 메서드를 제공하는 클래스.
2. File
클래스
File
클래스는 파일 또는 디렉토리의 경로를 나타내며, 파일의 생성, 정보 확인, 삭제 등의 작업을 수행할 수 있습니다.
2.1 파일 경로 설정 및 정보 출력
import java.io.File;
public class Main {
public static void main(String[] args) {
// 파일 객체 생성 (경로를 입력)
File file = new File("example.txt");
// 파일 정보 출력
if (file.exists()) {
System.out.println("파일 이름: " + file.getName());
System.out.println("파일 경로: " + file.getAbsolutePath());
System.out.println("파일 크기: " + file.length() + " 바이트");
} else {
System.out.println("파일이 존재하지 않습니다.");
}
}
}
2.2 파일 생성
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
File file = new File("newfile.txt");
try {
if (file.createNewFile()) {
System.out.println("파일이 생성되었습니다: " + file.getName());
} else {
System.out.println("파일이 이미 존재합니다.");
}
} catch (IOException e) {
System.out.println("파일을 생성하는 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
2.3 파일 삭제
import java.io.File;
public class Main {
public static void main(String[] args) {
File file = new File("newfile.txt");
if (file.delete()) {
System.out.println("파일이 삭제되었습니다: " + file.getName());
} else {
System.out.println("파일을 삭제할 수 없습니다.");
}
}
}
3. 파일 읽기
3.1 Scanner
클래스를 사용한 파일 읽기
Scanner
클래스는 파일을 읽는 데 자주 사용되는 클래스 중 하나입니다.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try {
File file = new File("example.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("파일을 찾을 수 없습니다.");
e.printStackTrace();
}
}
}
3.2 BufferedReader
를 사용한 파일 읽기
- *
BufferedReader
*는 파일을 버퍼링하여 읽기 성능을 개선하는 클래스입니다.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("example.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
System.out.println("파일을 읽는 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
4. 파일 쓰기
4.1 FileWriter
를 사용한 파일 쓰기
- *
FileWriter
*는 파일에 데이터를 쓰는 데 사용됩니다.true
를 두 번째 인수로 전달하면 파일을 덮어쓰지 않고 내용을 추가합니다.
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("example.txt");
writer.write("안녕하세요, 파일 쓰기 예제입니다.\\\\n");
writer.write("자바에서 파일을 다루는 방법을 배우고 있습니다.");
writer.close();
System.out.println("파일에 데이터가 성공적으로 저장되었습니다.");
} catch (IOException e) {
System.out.println("파일을 쓰는 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
4.2 BufferedWriter
를 사용한 파일 쓰기
- *
BufferedWriter
*는FileWriter
와 함께 사용하여 파일 쓰기 성능을 개선할 수 있습니다.
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"));
writer.write("자바 파일 처리 예제입니다.\\\\n");
writer.write("BufferedWriter를 사용하여 파일 쓰기 성능을 개선할 수 있습니다.");
writer.close();
System.out.println("파일에 데이터가 성공적으로 기록되었습니다.");
} catch (IOException e) {
System.out.println("파일을 쓰는 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
5. Files
클래스를 사용한 파일 처리 (NIO)
자바 7부터 추가된
클래스는 다양한 파일 작업을 더 간편하게 할 수 있는 유틸리티 메서드를 제공합니다. 파일 복사, 파일 이동, 파일 읽기/쓰기 작업을 쉽게 수행할 수 있습니다..nio.file.Files
5.1 파일 읽기 (Files.readAllLines()
)
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
List<String> lines = Files.readAllLines(Paths.get("example.txt"));
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("파일을 읽는 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
5.2 파일 쓰기 (Files.write()
)
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> lines = Arrays.asList("첫 번째 줄", "두 번째 줄", "세 번째 줄");
try {
Files.write(Paths.get("example.txt"), lines);
System.out.println("파일에 데이터가 성공적으로 기록되었습니다.");
} catch (IOException e) {
System.out.println("파일을 쓰는 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
5.3 파일 복사 (Files.copy()
)
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
try {
Files.copy(Paths.get("example.txt"), Paths.get("copy_example.txt"));
System.out.println("파일이 성공적으로 복사되었습니다.");
} catch (IOException e) {
System.out.println("파일 복사 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
5.4 파일 삭제 (Files.delete()
)
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
try {
Files.delete(Paths.get("example.txt"));
System.out.println("파일이 성공적으로 삭제되었습니다.");
} catch (IOException e) {
System.out.println("파일 삭제 중 오류가 발생했습니다.");
e.printStackTrace();
}
}
}
6. 파일 처리 시 예외 처리
파일 작업은 IO 작업이므로, 항상 예외가 발생할 수 있습니다. 자바에서는 IOException
또는
**FileNotFoundException
**과 같은 예외를 처리해야 합니다. 이를 통해 파일이 없거나, 읽기/쓰기 중 오류가 발생할 때 프로그램이
비정상적으로 종료되지
않도록 해야 합니다.
7. 요약
- 자바에서는
File
클래스를 사용해 파일
의 생성, 삭제, 존재 여부 등을 확인할 수 있습니다.
FileReader
, **BufferedReader
*를 사용하여 파일을 읽고,FileWriter
, **BufferedWriter
*를 사용하여 파일에 데이터를 쓸 수 있습니다.-
클래스는 파일을 읽고, 쓰고, 삭제하는 간편한 메서드를 제공합니다..nio.file.Files
- 파일 작업을 할 때는 항상 예외 처리를 통해 파일이 존재하지 않거나 접근할 수 없을 때의 상황을 처리해야 합니다.
자바에서 파일을 다루는 방법은 여러 가지가 있으며, 각 방법의 성능과 편리성에 따라 적절한 방식을 선택하여 사용할 수 있습니다.