19. 파일과 디렉터리
19.1. File 클래스
자바에서 파일과 디렉터리를 관리하는 기본 클래스는 File 클래스입니다. java.io 패키지에 포함되어 있으며, 파일 및 디렉터리의 경로를 표현하고, 관련 작업을 처리하는 데 사용됩니다. File 객체를 생성할 때에는 파일이나 디렉터리의 경로를 인자로 전달해주어야 합니다.
import java.io.File;
public class Main {
public static void main(String[] args) {
File file = new File("test.txt");
File directory = new File("src/main/resources");
}
}
19.2. 파일 및 디렉터리 생성, 삭제, 조회
File 클래스를 사용하면 파일 및 디렉터리를 생성, 삭제, 조회할 수 있습니다.
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
// 파일 생성
File file = new File("test.txt");
try {
boolean isCreated = file.createNewFile();
System.out.println("File created: " + isCreated);
} catch (IOException e) {
e.printStackTrace();
}
// 디렉터리 생성
File directory = new File("src/main/resources");
boolean isDirectoryCreated = directory.mkdir();
System.out.println("Directory created: " + isDirectoryCreated);
// 파일 및 디렉터리 삭제
boolean isFileDeleted = file.delete();
System.out.println("File deleted: " + isFileDeleted);
// 디렉터리 내의 파일 목록 조회
File[] files = directory.listFiles();
for (File f : files) {
System.out.println(f.getName());
}
}
}
19.3. 파일 입출력
앞서 설명한 스트림을 사용하여 파일 입출력 작업을 수행할 수 있습니다. FileReader, FileWriter, FileInputStream, FileOutputStream 등의 클래스를 사용하여 파일로부터 데이터를 읽거나 쓸 수 있습니다.
// 파일 읽기
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
// 파일 쓰기
BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"));
bw.write("Hello, File!");
bw.newLine();
bw.close();
19.4. Path와 Files 클래스 사용
자바 7부터 java.nio.file 패키지에 포함된 Path와 Files 클래스를 사용하여 파일 및 디렉터리를 관리할 수 있습니다. Path는 파일 및 디렉터리의 경로를 표현하고, Files 클래스는 파일 및 디렉터리 관련 작업을 처리하는 유틸리티 클래스입니다.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
Path filePath = Paths.get("test.txt");
Path dirPath = Paths.get("src/main/resources");
// 파일 생성
try {
Files.createFile(filePath);
System.out.println("File created");
} catch (IOException e) {
e.printStackTrace();
}
// 디렉터리 생성
try {
Files.createDirectory(dirPath);
System.out.println("Directory created");
} catch (IOException e) {
e.printStackTrace();
}
// 파일 및 디렉터리 삭제
try {
Files.delete(filePath);
System.out.println("File deleted");
} catch (IOException e) {
e.printStackTrace();
}
// 디렉터리 내의 파일 목록 조회
try {
Files.list(dirPath).forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
// 파일 읽기
try {
List<String> lines = Files.readAllLines(Paths.get("input.txt"));
lines.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
// 파일 쓰기
try {
List<String> content = Arrays.asList("Hello, File!", "This is a test.");
Files.write(Paths.get("output.txt"), content, StandardCharsets.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
}
}
이 강좌에서는 파일과 디렉터리를 다루는 방법을 살펴봤습니다. File 클래스를 사용하여 기본적인 작업을 수행할 수 있으며, Path와 Files 클래스를 사용하여 더 다양한 기능을 활용할 수 있습니다. 이를 통해 자바 프로그래밍에서 파일 및 디렉터리 관리가 중요한 역할을 차지하게 됩니다.
반응형
'GD's IT Lectures : 기초부터 시리즈 > 자바(JAVA) 기초부터 ~' 카테고리의 다른 글
[자바(JAVA)] Reflection API (0) | 2023.04.28 |
---|---|
[자바(JAVA)] 날짜와 시간 처리 (0) | 2023.04.28 |
[자바(JAVA)] 입출력 (I/O) (0) | 2023.04.28 |
[자바(JAVA)] 스트림 API (0) | 2023.04.28 |
[자바(JAVA)] 함수형 프로그래밍과 람다 (0) | 2023.04.28 |
댓글