如何使用eo yaml正确创建yaml文件



借助apihttps://github.com/decorators-squad/eo-yaml我创建了一个yaml文件,但我有文件格式不合适的问题,因为我想让它们

我的配置应该是什么样子:

name: ali
age: unknown
gender: male

我的配置外观:yaml name: aliage: unknowngender: male

我的创建方法

for ( Field field : clazz.getDeclaredFields() ) {
if (Modifier.isPrivate(field.getModifiers())) {
field.setAccessible(true);
}
Object value = null;
try {
value = field.get(this);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
YamlMapping yaml = Yaml.createYamlMappingBuilder()
.add(field.getName(), value.toString()).build();
try {
fileWriter.write(yaml.toString());
fileWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}```
**My ConfigTest Class**
```java
@Configuration(name = "config.yml")
public class ConfigTest extends YamlConfig {
private final String name = "ali";
private final String age = "unknown";
private final String gender = "male";
public ConfigTest() {
this.create();
}
}

您正在为每个键/值对创建一个新的YamlMapping并立即渲染它

  • name: ali
  • age: unknown
  • gender: male

然后,将它们连接到一个文件中。由于没有添加换行符,因此它们都被写入同一行。

您实际想要做的是创建一个映射,该映射包含所有三个键/值对:

YamlMappingBuilder builder = Yaml.createYamlMappingBuilder();
for ( Field field : clazz.getDeclaredFields() ) {
if (Modifier.isPrivate(field.getModifiers())) {
field.setAccessible(true);
}
Object value = null;
try {
value = field.get(this);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
builder.add(field.getName(), value.toString());
}
try {
fileWriter.write(builder.build().toString());
fileWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}

最新更新