[java] SnakeYAML을 사용하여 YAML 파일을 다른 형식으로 변환하기

YAML은 인간이 읽고 쓰기 쉬운 형식으로 데이터를 표현하기 위한 마크업 언어입니다. 그리고 SnakeYAML은 Java에서 YAML 데이터를 파싱하고 생성하기 위한 라이브러리입니다.

이번에는 SnakeYAML을 사용하여 YAML 파일을 다른 형식으로 변환하는 방법에 대해 알아보겠습니다.

YAML 파일 읽기

먼저 SnakeYAML을 사용하여 YAML 파일을 읽는 방법을 알아보겠습니다. 다음은 “config.yaml” 파일을 읽어오는 예제 코드입니다.

import org.yaml.snakeyaml.Yaml;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class YAMLReader {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        
        try {
            File file = new File("config.yaml");
            FileInputStream fileInputStream = new FileInputStream(file);
            
            // YAML 파일 파싱
            Object data = yaml.load(fileInputStream);
            
            // 파싱된 데이터 처리
            // ...
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

YAML 데이터 변환하기

SnakeYAML을 사용하여 읽어온 YAML 데이터를 다른 형식으로 변환할 수도 있습니다. 여기서는 YAML 데이터를 JSON 형식으로 변환하는 예제 코드를 보여드리겠습니다.

import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Dumper;
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;

import java.io.FileWriter;
import java.io.IOException;

public class YAMLConverter {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        
        try {
            // YAML 파일 읽기
            Object data = yaml.load(new FileInputStream(new File("config.yaml")));
            
            // JSON 형식으로 변환하기
            DumperOptions options = new DumperOptions();
            options.setDefaultFlowStyle(FlowStyle.BLOCK);
            options.setDefaultScalarStyle(ScalarStyle.PLAIN);
            Dumper dumper = new Dumper(data, options);
            FileWriter writer = new FileWriter("output.json");
            dumper.dump(writer);
            
            // 변환된 데이터 출력
            System.out.println("YAML 데이터를 JSON 형식으로 변환하였습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

결론

SnakeYAML을 사용하여 YAML 파일을 읽고 다른 형식으로 변환하는 방법에 대해 알아보았습니다. 이를 통해 YAML 데이터를 다른 형식으로 쉽게 변환할 수 있습니다. SnakeYAML의 다양한 기능과 옵션을 활용하여 필요에 맞게 데이터 변환을 수행할 수 있습니다.