前言
yaml 本身是一個標記語言,其文件形式是.yml
,常用來作數據配置的文件
下面使用的 Yaml 來源於org.yaml.snakeyaml
這個依賴包,需要自己導入
java 讀取 yaml
@Test
public void read() throws IOException {
Yaml yml = new Yaml();
FileReader reader = new FileReader("src\\test\\java\\test.yml");
BufferedReader buffer = new BufferedReader(reader);
Map<String,Object> map = yml.load(buffer);
System.out.println(map.get("key1"));
System.out.println(map.get("key2"));
buffer.close();
reader.close();
}
java 寫入 yaml
@Test
public void write() throws IOException {
Map<String, Object> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", "2");
Yaml yml = new Yaml();
FileWriter writer = new FileWriter("src\\test\\java\\test.yml", true);
BufferedWriter buffer = new BufferedWriter(writer);
buffer.newLine();
yml.dump(map, buffer);
buffer.close();
writer.close();
}
這裏值得注意的是這個 dump() 方法,dump 本意是卸下數據,即將鍵值對的數據轉變成 String 類型
dump 可以接收一個參數,或者兩個參數。若是接收兩個參數,第二個參數是輸出流。當接收一個參數時返回 String,這樣再使用輸出流的 write() 方法就可以直接寫到 yml 中;當接收兩個參數時返回 void,直接就可以實現寫進磁盤的操作。
上述代碼中 dump() 方法直接寫進磁盤與 write() 寫進磁盤還是有區別的,dump() 寫完之後會自動添加上一個回車符,然而 write() 就不會