大佬们以下是代码:
复制代码这是我yml写入前的数据:
复制代码
这是写入后的数据:复制代码写入新数据后:
复制代码旧数据的tape数据类型也变了,而且我写入的数据是字符串,结果却成了对象,求解惑!
或者有大佬可以和我说一下,snakeYaml的写入方法吗?一直都找不到写入到路径的相关的教程
- File file = new File(LindTag.plugin.getDataFolder(),"data.yml");
- YamlConfiguration data = YamlConfiguration.loadConfiguration(file);
- data.set("data.3.name",p.getName());
- try {
- data.save(file);
- } catch (IOException e) {
- e.printStackTrace();
- }
- <div class="blockcode"><blockquote>data:
- '0':
- tape: 'gif'
- photo: '[local]LindTag//tag001.gif'
- name: '50'
- nature:
- - 暴击
- - 攻速
这是写入后的数据:
- data:
- '0':
- tape: gif
- photo: '[local]LindTag//tag001.gif'
- name: '50'
- nature:
- - 暴击
- -攻速
- '3':
- name: Amir_233
- '3':
- name: Amir_233
或者有大佬可以和我说一下,snakeYaml的写入方法吗?一直都找不到写入到路径的相关的教程
开一个新的文件来专门储存
或者看下这个贴的2楼
如何让save保存不把注释抹除
https://www.mcbbs.net/thread-1010337-1-1.html
(出处: Minecraft(我的世界)中文论坛)
或者看下这个贴的2楼
如何让save保存不把注释抹除
https://www.mcbbs.net/thread-1010337-1-1.html
(出处: Minecraft(我的世界)中文论坛)
SnakeYAML遵循的语法规则与其他普通的YAML所遵循的规则基本一致,直接在百度搜索YAML语法规则就可以了解相关内容。
在YAML中, 字符串不需要加单引号、双引号,加不加都属于字符串:
demo1: "example1"
demo2: 'example2'
demo3: example3
这三种方式都表示存储了一个字符串,内容分别是example1、example2、example3,而不是对象,yaml中不序列化的话没办法直接保存对象。SnakeYAML更倾向于以第三种方式保存字符串。
你完全可以以正常的方式使用这三种字符串:
YamlConfiguration demoConfig = xxx;
demoConfig.getString("demo1"); //返回String对象内容为example1
demoConfig.getString("demo2"); //返回String对象内容为example2
demoConfig.getString("demo3"); //返回String对象内容为example3
在YAML中, 字符串不需要加单引号、双引号,加不加都属于字符串:
demo1: "example1"
demo2: 'example2'
demo3: example3
这三种方式都表示存储了一个字符串,内容分别是example1、example2、example3,而不是对象,yaml中不序列化的话没办法直接保存对象。SnakeYAML更倾向于以第三种方式保存字符串。
你完全可以以正常的方式使用这三种字符串:
YamlConfiguration demoConfig = xxx;
demoConfig.getString("demo1"); //返回String对象内容为example1
demoConfig.getString("demo2"); //返回String对象内容为example2
demoConfig.getString("demo3"); //返回String对象内容为example3
非常感谢两位大佬的帮助 @baka_rinya @结城希亚