凛_冬
大佬们以下是代码:

  1.             File file = new File(LindTag.plugin.getDataFolder(),"data.yml");
  2.             YamlConfiguration data = YamlConfiguration.loadConfiguration(file);
  3.             data.set("data.3.name",p.getName());
  4.             try {
  5.                 data.save(file);
  6.             } catch (IOException e) {
  7.                 e.printStackTrace();
  8.             }
复制代码
这是我yml写入前的数据:
  1. <div class="blockcode"><blockquote>data:
  2. '0':
  3.   tape: 'gif'
  4.   photo: '[local]LindTag//tag001.gif'
  5.   name: '50'
  6.   nature:
  7.   - 暴击
  8.   - 攻速
复制代码


这是写入后的数据:
  1. data:
  2. '0':
  3.   tape: gif
  4.   photo: '[local]LindTag//tag001.gif'
  5.   name: '50'
  6.   nature:
  7.   - 暴击
  8.   -攻速
  9. '3':
  10. name: Amir_233
复制代码
写入新数据后:
  1. '3':
  2. name: Amir_233
复制代码
旧数据的tape数据类型也变了,而且我写入的数据是字符串,结果却成了对象,求解惑!
或者有大佬可以和我说一下,snakeYaml的写入方法吗?一直都找不到写入到路径的相关的教程

结城希亚
开一个新的文件来专门储存


或者看下这个贴的2楼
如何让save保存不把注释抹除
https://www.mcbbs.net/thread-1010337-1-1.html
(出处: Minecraft(我的世界)中文论坛)

baka_rinya
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

凛_冬
非常感谢两位大佬的帮助 @baka_rinya @结城希亚