借助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();
}