Java获取配置文件内容

在Java开发中,经常需要读取配置文件中的内容,比如数据库连接信息、系统参数等。本文将介绍一些常用的方法,帮助开发者在Java程序中获取配置文件的内容。

1. 配置文件格式

配置文件通常采用键值对的形式存储数据,可以使用文本编辑器打开并编辑。常见的配置文件格式有.properties、.xml和.yaml等。

1.1 .properties格式

.properties文件是Java中常用的配置文件格式。它以键值对的形式存储数据,每行一个键值对,键和值之间使用等号(=)或冒号(:)进行分隔。

示例配置文件 config.properties

# 数据库连接信息
db.url=jdbc:mysql://localhost:3306/mydb
db.username=root
db.password=123456

# 系统参数
system.maxThreads=100

1.2 .xml格式

XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,也可以用于配置文件。XML格式的配置文件需要遵循XML语法规则。

示例配置文件 config.xml

<config>
    <!-- 数据库连接信息 -->
    <db>
        <url>jdbc:mysql://localhost:3306/mydb</url>
        <username>root</username>
        <password>123456</password>
    </db>

    <!-- 系统参数 -->
    <system>
        <maxThreads>100</maxThreads>
    </system>
</config>

1.3 .yaml格式

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,也可以用于配置文件。

示例配置文件 config.yaml

# 数据库连接信息
db:
  url: jdbc:mysql://localhost:3306/mydb
  username: root
  password: 123456

# 系统参数
system:
  maxThreads: 100

2. 读取配置文件

Java提供了多种读取配置文件的方法,下面将介绍其中的几种常用方式。

2.1 使用java.util.Properties类读取.properties文件

.properties文件中的配置可以使用java.util.Properties类来读取。以下是读取.properties文件的示例代码:

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class PropertiesExample {
    public static void main(String[] args) {
        try {
            Properties properties = new Properties();
            properties.load(new FileInputStream("config.properties"));

            // 读取配置项
            String dbUrl = properties.getProperty("db.url");
            String dbUsername = properties.getProperty("db.username");
            String dbPassword = properties.getProperty("db.password");
            int maxThreads = Integer.parseInt(properties.getProperty("system.maxThreads"));

            // 打印配置项
            System.out.println("数据库连接信息:");
            System.out.println("URL: " + dbUrl);
            System.out.println("用户名: " + dbUsername);
            System.out.println("密码: " + dbPassword);
            System.out.println("系统参数:");
            System.out.println("最大线程数: " + maxThreads);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2.2 使用javax.xml.parsers.DocumentBuilder类读取.xml文件

.xml文件中的配置可以使用javax.xml.parsers.DocumentBuilder类来读取。以下是读取.xml文件的示例代码:

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;

public class XmlExample {
    public static void main(String[] args) {
        try {
            File configFile = new File("config.xml");
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(configFile);

            // 读取数据库连接信息
            Node dbNode = document.getElementsByTagName("db").item(0);
            String dbUrl = getNodeValue(dbNode, "url");
            String dbUsername = getNodeValue(dbNode, "username");
            String dbPassword = getNodeValue(dbNode, "password");

            // 读取系统参数
            Node systemNode = document.getElementsByTagName("system").item(0);
            int maxThreads = Integer.parseInt(getNodeValue(systemNode, "maxThreads"));

            // 打印配置项
            System.out.println("数据库连接信息:");
            System.out.println("URL: " + dbUrl);
            System.out.println("用户名: " + dbUsername);
            System.out.println("密码: " + dbPassword);
            System.out