在api https://github.com/decorators-squad/eo-yaml的帮助下,我创建了一个yaml文件,但是我遇到了文件格式不适合的问题,因为我想要它们。
我的配置应该是什么样子:
name: ali
age: unknown
gender: male我的Config看上去如何:yaml name: aliage: unknowngender: male
My create methode
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@配置(name= "config.yml")
公共类ConfigTest扩展YamlConfig {
private final String name = "ali";private final String age = "unknown";private final String gender = "male";public ConfigTest() { this.create();}}
发布于 2021-07-19 10:48:01
您正在为每个键/值对创建一个新的YamlMapping,并立即呈现它。因此,您呈现三个单独的映射:
name: aliage: unknowngender: 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();
}https://stackoverflow.com/questions/68434312
复制相似问题