希赛考试网
首页 > 软考 > 网络工程师

java properties读取配置文件

希赛网 2024-04-25 11:20:25

在Java应用程序中,读取配置文件是非常常见的任务。常见的配置文件有 Property、XML、YAML 等等,本文将介绍使用 Java 中的 Properties 类读取配置文件的方法。

Properties 类概述

首先,我们来介绍一下 Properties 类。Properties 类是 Java 的一个工具类,它继承自 Hashtable 类,用于处理基于名-值对(key-value)的配置文件。Properties 类是 Java 语言处理配置文件的标准方法之一,与其它的方法相比,Properties 类具有简单、高效、易扩展的优点。

读取配置文件

接下来,我们将介绍使用 Java Properties 类读取配置文件的方法。

步骤1:创建一个 Properties 对象

使用 Properties 类读取配置文件的第一步是创建一个 Properties 类型的对象。

Properties props = new Properties();

步骤2:使用 load() 方法加载配置文件

使用 load() 方法可以将配置文件中的内容加载进 Properties 类型的对象中。

这里需要注意的是,load() 方法接受一个 InputStream 对象作为参数,因此要先构建 InputStream 对象来读取配置文件中的数据。最简单的方式是通过 Class.getResourceAsStream() 或 ClassLoader.getResourceAsStream() 方法获取配置文件输入流。

例如,假设配置文件名为 “config.properties”,则可以通过以下代码获得配置文件输入流:

InputStream inputStream = getClass().getResourceAsStream("/config.properties");

然后,再将输入流传入 load() 方法中:

props.load(inputStream);

步骤3:读取配置文件中的数据

读取配置文件中的内容可以通过 getProperty() 方法实现:

String url = props.getProperty("url");

下面是一个完整的读取配置文件的示例代码:

Properties props = new Properties();

InputStream inputStream = getClass().getResourceAsStream("/config.properties");

try {

props.load(inputStream);

} catch (IOException e) {

e.printStackTrace();

}

String url = props.getProperty("url");

配置文件格式

在读取配置文件之前,需要确保配置文件的格式是正确的。Properties 类支持多种格式的配置文件,包括基于键值对的文本格式(.properties)、XML 文件格式(.xml)等。在这里,我们只介绍最常见的 .properties 格式。

.properties 文件是基于键值对的文本文件,每一行都是一个键值对。键和值之间用等号(=)连接,键值对之间用换行符(\n或\r\n)分隔。

例如,下面是一个简单的 config.properties 文件:

url=http://localhost:8080/api

timeout=5000

Properties 类支持 Unicode 编码,因此可以在配置文件中使用中文字符或其它语言的字符。

兼容多种操作系统

在不同的操作系统中,文件路径的表示方式是不同的。Windows 操作系统使用反斜杠(\)作为文件路径的分隔符,而 Unix/Linux/Mac 使用正斜杠(/)作为文件路径的分隔符。为了确保程序在不同的操作系统中都能正常使用,我们可以使用 File.separator 变量代替操作系统特定的路径分隔符。

例如,下面是一个读取配置文件的例子,其中使用了 File.separator 变量:

String filePath = "/config.properties";

File file = new File(System.getProperty("user.dir") + File.separator + filePath);

完整代码

最后,我们来看一下一段完整的代码,该代码使用 Properties 类读取配置文件:

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class ReadConfig {

public static void main(String[] args) {

Properties props = new Properties();

String filePath = "/config.properties";

File file = new File(System.getProperty("user.dir") + File.separator + filePath);

try {

InputStream inputStream = new FileInputStream(file);

props.load(inputStream);

} catch (IOException e) {

e.printStackTrace();

}

String url = props.getProperty("url");

String timeout = props.getProperty("timeout");

System.out.println("url: " + url);

System.out.println("timeout: " + timeout);

}

}

这段代码首先创建了一个 Properties 对象 props,然后读取了 /config.properties 文件中的配置。最后,输出了读取到的 url 和 timeout 属性。

扫码咨询 领取资料


软考.png


网络工程师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
网络工程师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件