snakeyaml で、オブジェクトからYAMLを作る - Oboe吹きプログラマの黙示録
で書いたとおり、snakeyaml がダンプする YAML は、
"!!" + 変換対象クラス名か、"!!yaml" が先頭についてしまいます。
YAML書式ではコメントは、'#' で始めてコメント行にするはずです。
2通りの対応が考えられます。いずれも安易な方法です。
・dump で Writer 出力実行直前に、'#' を Writer で出力してしまう。
・dumpAs 実行結果 String に対して、正規表現置換で、"!!" の先頭行を取り除いてしまう。
'#' を Writer で出力しておく方法、、
PrintWriter pw = new PrintWriter(new UnclosableOutputStream(System.out)); Yaml yaml = new Yaml(); pw.print("#"); yaml.dump(sample, pw);
UnclosableOutputStream は、https://oboe2uran.hatenablog.com/entry/2020/08/11/235433 です。
正規表現置換で、"!!" の先頭行を取り除いてしまう方法
String result = yaml.dumpAs(sample, Tag.YAML, DumperOptions.FlowStyle.BLOCK).replaceFirst("^!!.*\n", "");