본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 파일과 디렉터리

by GDNGY 2023. 4. 28.

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 클래스를 사용하여 더 다양한 기능을 활용할 수 있습니다. 이를 통해 자바 프로그래밍에서 파일 및 디렉터리 관리가 중요한 역할을 차지하게 됩니다.

 

반응형

댓글