您的位置:首页 > 编程语言 > Java开发

YAML的Java实现——JYAML基本原理与示例(3)YAML对文件流的处理

2012-03-20 00:00 621 查看
请您先阅读:

《YAML的Java实现——JYAML基本原理与示例(1)导出数据为YAML格式文件》

《YAML的Java实现——JYAML基本原理与示例(2)导入YAML格式文件》

1. FileOutputStream

以流的方式,将数据写入到YAML文件中。

/* Output data structure into a YAML file as a FileOutputStream. */
try {
YamlEncoder yEncoder = new YamlEncoder(new FileOutputStream(dumpFile));
for (int i = 0; i < 3; ++i) {
michael.setAge(24 + i);
yEncoder.writeObject(michael);
yEncoder.flush();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}


2. FileInputStream

以流的方式,从YAML文件中将数据读入。

/* Input a YAML file into data structure as a FileOutputStream. */
try {
YamlDecoder yDecoder = new YamlDecoder(new FileInputStream(dumpFile));
Person[] persons = {new Person(), new Person(), new Person()};
for (int i = 0; i < 3; ++i) {
persons[i] = (Person) yDecoder.readObject();
System.out.println();
TestYaml.output(persons[i]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (EOFException e) {
e.printStackTrace();
}


3. 查看YAML文件

--- &0 !com.sinosuperman.yaml.Person
age: 24
children: &2 !com.sinosuperman.yaml.Person[]
- !com.sinosuperman.yaml.Person
age: 3
name: boy
- !com.sinosuperman.yaml.Person
age: 1
name: girl
name: Michael Corleone
spouse: !com.sinosuperman.yaml.Person
age: 24
children: *2
name: Floveria Edie
spouse: *0
--- &9 !com.sinosuperman.yaml.Person
age: 25
children: &11 !com.sinosuperman.yaml.Person[]
- !com.sinosuperman.yaml.Person
age: 3
name: boy
- !com.sinosuperman.yaml.Person
age: 1
name: girl
name: Michael Corleone
spouse: !com.sinosuperman.yaml.Person
age: 24
children: *11
name: Floveria Edie
spouse: *9
--- &18 !com.sinosuperman.yaml.Person
age: 26
children: &20 !com.sinosuperman.yaml.Person[]
- !com.sinosuperman.yaml.Person
age: 3
name: boy
- !com.sinosuperman.yaml.Person
age: 1
name: girl
name: Michael Corleone
spouse: !com.sinosuperman.yaml.Person
age: 24
children: *20
name: Floveria Edie
spouse: *18


$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});

原文链接:
http://blog.csdn.net/poechant/article/details/7017113
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: