[java] YAML 파일의 특정 속성 값을 변경하는 방법

YAML (YAML Ain’t Markup Language)은 사람이 쉽게 읽고 작성할 수 있는 데이터 직렬화 형식입니다. 이 형식은 프로그래밍 언어와 독립적이며, 다양한 응용 프로그램에서 설정 파일이나 데이터 구조로 사용됩니다. YAML 파일의 특정 속성 값을 변경하는 방법에 대해 알아보겠습니다.

1. YAML 파일 읽기

먼저, YAML 파일을 읽어오는 방법부터 알아봅시다. Java에서는 SnakeYaml 라이브러리를 사용하여 YAML 파일을 읽고 쓸 수 있습니다. 다음은 YAML 파일을 읽어오는 예제 코드입니다.

import org.yaml.snakeyaml.Yaml;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class YamlReader {
    public static void main(String[] args) {
        try {
            Yaml yaml = new Yaml();
            FileInputStream file = new FileInputStream("config.yaml");
            // YAML 파일을 읽어옴
            Object data = yaml.load(file);
            System.out.println(data);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 config.yaml 파일이 현재 작업 디렉토리에 존재해야 합니다. 코드를 실행하면 YAML 파일의 내용을 출력할 수 있습니다.

2. 속성 값 변경하기

YAML 파일의 특정 속성 값을 변경하려면, 먼저 YAML 파일을 읽어온 다음 해당 속성을 찾아 값을 변경해야 합니다. 값을 변경하려는 YAML 파일의 구조와 속성명을 알고 있어야 합니다.

import org.yaml.snakeyaml.Yaml;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

public class YamlWriter {
    public static void main(String[] args) {
        try {
            Yaml yaml = new Yaml();
            FileInputStream file = new FileInputStream("config.yaml");
            // YAML 파일을 읽어옴
            Object data = yaml.load(file);

            // 특정 속성 값 변경
            ((Map<String, Object>) data).put("property", "new value");

            // 변경된 YAML 파일 저장
            FileWriter writer = new FileWriter("config.yaml");
            yaml.dump(data, writer);
            writer.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 property 속성의 값을 “new value”로 변경한 후, 변경된 YAML 내용을 파일에 저장합니다. 변경된 YAML 파일은 config.yaml 파일에 덮어씌워집니다.

참고 자료

이렇게 YAML 파일의 특정 속성 값을 변경하는 방법에 대해 알아보았습니다. YAML 파일을 적절히 읽고 쓰는 것은 설정 파일이나 데이터 구조를 다룰 때 매우 유용한 기술입니다.