常见的配置文件格式:yaml,json,xml,ini,csv等
目录
1、配置文件的作用
2、什么是硬编码?
3、常见的配置文件格式
1、配置文件的作用
为什么需要配置文件:
主要作用是将应用程序或系统的配置参数和设置从源代码中分离出来,使它们变得易于修改和管理。通过将配置信息存储在配置文件中,而不是硬编码到应用程序中。
易于维护,共享配置,灵活性,安全性等。
补充:
2、什么是硬编码?
硬编码(Hardcoding)是指在计算机程序或系统中直接嵌入常量或具体数值、字符串、文件路径等数值或文本信息,而不使用变量或配置文件来存储这些信息。硬编码的值通常直接写入源代码中,以固定不变的方式出现在程序中。
3、常见的配置文件格式
常用的配置文件格式有很多,具体使用取决于应用程序或系统的需求和偏好。以下是一些常见的配置文件格式:
- YAML:YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,广泛用于配置文件和数据交换。它以缩进来表示层次结构,并且容易阅读和编辑。
文件通常以 .yaml 或 .yml为结尾。
注意:每个冒号后面使用空格:
# 这是一个YAML格式的配置文件示例
database:
host: localhost
port: 3306
username: myuser
password: mypassword
server:
port: 8080
debug: true
-
JSON:JSON(JavaScript Object Notation)是一种轻量级数据格式,用于数据交换和配置文件。方便解析。
文件通常以 .json结尾。
// 这是一个JSON格式的配置文件示例
{
"database": {
"host": "localhost",
"port": 3306,
"username": "myuser",
"password": "mypassword"
},
"server": {
"port": 8080,
"debug": true
}
}
-
XML:XML(eXtensible Markup Language)是一种标记语言,用于存储和传输数据。它在配置文件中使用较少,但在数据交换和标记文档方面广泛使用。
通常在编程语言中常用,比如xxx.xml,存储配置。
<!-- 这是一个XML格式的配置文件示例 -->
<config>
<database>
<host>localhost</host>
<port>3306</port>
<username>myuser</username>
<password>mypassword</password>
</database>
<server>
<port>8080</port>
<debug>true</debug>
</server>
</config>
- INI 文件:INI 文件是一种简单的文本文件格式,通常包含键值对,用于配置Windows应用程序和操作系统。
通常存储系统的配置文件,xxx.ini
; 这是一个INI格式的配置文件示例
[database]
host = localhost
port = 3306
username = myuser
password = mypassword
[server]
port = 8080
debug = true
-
TOML:TOML(Tom's Obvious, Minimal Language)是一种易读的配置文件格式,具有层次结构,用于存储配置数据。
# 这是一个TOML格式的配置文件示例
[database]
host = "localhost"
port = 3306
username = "myuser"
password = "mypassword"
[server]
port = 8080
debug = true
-
Properties 文件:属性文件通常用于Java应用程序,采用键值对的格式,以配置应用程序的属性。
通常以 .properties为结尾
# 这是一个Properties文件示例
# 注释以井号(#)开头
database.host = localhost
database.port = 3306
database.username = myuser
database.password = mypassword
server.port = 8080
server.debug = true
-
CSV:虽然主要用于存储表格数据,但CSV(逗号分隔值)文件也可以用于简单的配置文件,以列表形式存储数据。
通常以 .csv为结尾,在大数据中存储数据库包常用。
# 这是一个CSV格式的配置文件示例
name,value
database.host,localhost
database.port,3306
database.username,myuser
database.password,mypassword
server.port,8080
server.debug,true