はじめに
Selenideでテスト自動化をした際に、シナリオA→Bでデータの受け渡しをする上でyamlに書き込みをしたい場面があった。その時の実装の備忘録を残しておく。
Javaでyamlを生成してファイルに書き込む
snakeyaml
とOutputStreamWriter・BufferedWriter
を使って簡単にできる。
OutputStreamWriter
を使う理由は、書き込み時の文字コードを指定し文字化けを防ぐため。
sample.java
User user = new User();
user.setId("12345");
user.setName("hoge hoge");
Yaml yaml = new Yaml(); // org.yaml.snakeyaml
File file = new File("C:\\temp\\test.yaml");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); // 文字コードを指定するためにOutputStreamWriterを使う
BufferedWriter bw = new BufferedWriter(osw);
bw.write(yaml.dump(user)); // クラスのインスタンス(オブジェクト)
bw.close();
User.java
@Data
public class User {
private String id;
private String name;
}