定义固定的格式,各数据长度大多固定(某个字节到某个字节的代表一个数据),比如Log文件。比如:
引用
101rensanning36male
102tom 30male
103ruby 25female
102tom 30male
103ruby 25female
大多作为数据序列化时,这样的数据也不需要换行:
引用
101rensanning36male 102tom 30male 103ruby 25female
(2) CSV: Comma-Separated Values
逗号分隔的数据,默认Excel打开。一般第一行是标题,第二行以后为数据,一般改行代表数据结束,如果数据中有空格/改行等特殊字符时需要用双引号括起来。多用于数据的导入导出。还有变形定义比如TSV,基于Tab分隔数据格式。常见文件:data.csv
no,name,age,gender 101,rensanning,36,male 102,tom,30,male 103,ruby,25,female
(3) XML: Extensible Markup Language
嵌套标记代表数据层次结构,多用于提供API(Web Service)、Java配置文件、Office文件(DOCX)等。如果数据中有特殊字符比如【&】【<】【>】等需要转成相应的参照实体。常见文件:pom.xml
<?xml version=”1.0″encoding=”utf-8″?> <list> <customer> <no>101</no> <name>rensanning</name> <age>36</age> <gender>male</gender> </customer> <customer> <no>102</no> <name>tom</name> <age>30</age> <gender>male</gender> </customer> <customer> <no>103</no> <name>ruby</name> <age>25</age> <gender>female</gender> </customer> </list>
(4) JSON: JavaScript Object Notation
大括号(方括号)代表数据层次结构,XML的替代品,多用于提供API(REST),配置文件、Nosql数据库等。如果数据中有特殊字符比如【"】【\】【/】等,需要通过转义字符转义。支持string/number/true/false/null/array/object,常见文件:package.json
[ {"no": 101,"name": "ruby","age": 25,"gender": "female"},{"no": 102,"name": "tom","age": 30,"gender": "male"},{"no": 103,"name": "rensanning","age": 36,"gender": "male"} ]
(5) YAML: YAML Ain't Markup Language
使用空格缩进代表数据的层次结构,多用于配置文件。常见文件:application.yml
list: - no: 101 name: ruby age: 25 gender: female - no: 102 name: tom age: 30 gender: male - no: 103 name: rensanning age: 36 gender: male
(6) 其他
.properties
Java程序用于配置程序参数,也用于存储多国语本地化文字,比如log4j.properties、messages.properties
.ini
Windows平台的配置文件,比如PHP.ini、MysqL.ini
.conf Linux平台的配置文件,大多有自己的特殊语法, 比如httpd.conf、Nginx.conf