[java] SnakeYAML을 사용하여 YAML 파일 수정하기

이번 포스트에서는 Java에서 YAML 파일을 수정하는 방법을 배우겠습니다. YAML(또는 YML)은 인간에게 친숙한 구조를 가진 데이터 직렬화 형식입니다. SnakeYAML은 YAML을 파싱하고 작성하기 위한 Java 라이브러리입니다.

준비물

먼저, 프로젝트에서 SnakeYAML 라이브러리를 사용할 수 있도록 의존성을 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음을 추가하세요:

<dependencies>
    <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.27</version>
    </dependency>
</dependencies>

Gradle을 사용하는 경우 build.gradle 파일에 다음을 추가하세요:

dependencies {
    implementation 'org.yaml:snakeyaml:1.27'
}

YAML 파일 로드하기

먼저, 처리할 YAML 파일을 로드해야 합니다. SnakeYAML을 사용하면 YAML 파일을 객체로 변환할 수 있습니다. 다음은 YAML 파일을 로드하는 예입니다:

import org.yaml.snakeyaml.Yaml;

public class YAMLReader {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        try (InputStream inputStream = new FileInputStream("example.yml")) {
            // YAML 파일 로드
            Map<String, Object> data = yaml.load(inputStream);
            
            // 로드한 데이터 사용
            String value = (String) data.get("key");
            System.out.println(value);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

YAML 파일 수정하기

YAML 파일을 수정하려면 먼저 로드한 데이터를 변경하고, 변경된 데이터를 YAML 형식으로 다시 작성해야 합니다. 다음은 YAML 파일을 수정하는 예입니다:

import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;

public class YAMLWriter {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        try (InputStream inputStream = new FileInputStream("example.yml")) {
            // YAML 파일 로드
            Map<String, Object> data = yaml.load(inputStream);
            
            // 데이터 수정
            data.put("key", "new value");
            
            // 수정된 데이터를 YAML 형식으로 작성
            DumperOptions options = new DumperOptions();
            options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
            yaml.dump(data, new FileWriter("example.yml"), options);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 key라는 키의 값을 수정하고, 수정된 데이터를 다시 YAML 파일로 작성합니다.

SnakeYAML을 사용하면 YAML 파일을 수정할 수 있으며, 유연한 방식으로 데이터를 조작할 수 있습니다. 더 자세한 내용은 SnakeYAML 문서를 참조하세요.

이로써 Java에서 SnakeYAML을 사용하여 YAML 파일을 수정하는 방법을 알아보았습니다. 코드 예제는 실제 사용에 맞게 수정하여 사용하시면 됩니다.