java加载properties文件的六种方法总结

以下是讲解“java加载properties文件的六种方法总结”的完整攻略。

一、背景

Java应用中经常会使用配置文件properties来存储一些固定的配置信息,方便程序在运行时读取。那么在Java中如何加载properties文件呢?本文将总结6种Java加载properties文件的方法。

二、直接使用Java代码加载

直接使用Java代码加载properties文件,方法如下:

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(inputStream);

这段代码可以直接通过类加载器获取到文件路径,然后通过Properties对象读取properties文件内容。这种方法可以在代码中自己定义properties文件路径,适用性比较广。

三、通过ClassLoader加载properties文件

可以通过ClassLoader来加载properties文件,方法如下:

InputStream inputStream = ClassLoader.getSystemResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(inputStream);

这种方法与方法二类似,都是通过类加载器来读取文件。只是这种方法使用的是系统默认的ClassLoader,可以保证在JVM中只有一个ClassLoader实例,不同线程的加载操作不会相互干扰。

四、通过Class.getResourceAsStream()加载properties文件

可以通过Class.getResourceAsStream()方法来加载properties文件,方法如下:

InputStream inputStream = this.getClass().getResourceAsStream("/config.properties");
Properties properties = new Properties();
properties.load(inputStream);

这种方法可以直接以相对路径20的方式读取文件内容,不需要指定具体的路径。并且可以保证在不同的Class实例中加载的资源不会相互影响。

五、通过Class.getResource()加载properties文件

与方法四类似,也可以通过Class.getResource()方法来加载properties文件,方法如下:

URL url = this.getClass().getResource("/config.properties");
InputStream inputStream = new FileInputStream(new File(url.getPath()));
Properties properties = new Properties();
properties.load(inputStream);

通过Class.getResource()返回的是一个URL对象,可以通过这个对象获取到文件的具体路径,然后再通过FileInputStream来读取文件内容。

六、通过ClassLoader的getResource()或getResourceAsStream()加载properties文件

也可以通过ClassLoader的getResource()或getResourceAsStream()方法来加载properties文件,方法如下:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(inputStream);

这种方法可以保证ClassLoader的使用范围更广,可以在不同的类加载器实例中使用。

七、总结

这篇文章总结了Java加载properties文件的六种方式,每种方式都有自己的优缺点。在具体使用时可以根据实际情况选择不同的方式。

以下是两个使用方法的示例。

示例一

/* 读取src目录下的hello.properties文件 */

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

public class LoadProperties {
    public static void main(String[] args) throws IOException {
        InputStream inputStream = LoadProperties.class.getClassLoader().getResourceAsStream("hello.properties");
        Properties properties = new Properties();
        properties.load(inputStream);

        System.out.println(properties.getProperty("name"));
        System.out.println(properties.getProperty("age"));
        System.out.println(properties.getProperty("sex"));
    }
}

示例二

/* 读取config.properties文件,使用getResource() */

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;

public class LoadProperties {
    public static void main(String[] args) throws IOException {
        URL url = LoadProperties.class.getResource("/config.properties");
        InputStream inputStream = new FileInputStream(new File(url.getPath()));
        Properties properties = new Properties();
        properties.load(inputStream);

        System.out.println(properties.getProperty("name"));
        System.out.println(properties.getProperty("age"));
        System.out.println(properties.getProperty("sex"));
    }
}

希望这篇文章能够帮助大家更好地使用Java加载properties文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java加载properties文件的六种方法总结 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • springboot升级过程中踩坑定位分析记录 | 京东云技术团队

    作者:京东零售 李文龙 1.背景 “ 俗话说:为了修复一个小bug而引入了一个更大bug ” 因所负责的系统使用的spring框架版本5.1.5.RELEASE在线上出过一个偶发的小事故,最后定位为spring-context中的一个bug导致的。 为了修复此bug进行了spring版本的升级,最终定的版本为收银台团队使用的版本5.2.12.RELEASE,…

    Java 2023年4月30日
    00
  • jsp实现购物程序

    在这里我将会为你详细讲解“JSP实现购物程序”的完整攻略。整个攻略包含以下步骤: 数据库设计与创建 创建JavaBean封装商品信息 创建购物车类 编写购物车的相关业务处理代码 编写JSP页面实现购物功能 下面我将会逐一为你详细说明每一步。 1. 数据库设计与创建 首先需要设计并创建一个商品信息的数据库表。一般情况下,商品信息表包含商品ID、名称、价格等基本…

    Java 2023年6月15日
    00
  • ASP连接SQL2005数据库连接代码

    要连接SQL Server 2005数据库,可以使用以下四种方式: 使用SQL Server Management Studio(SSMS):在SSMS中,您可以轻松地打开数据库,并使用查询编辑器中提供的标准SQL语言编写查询。SSMS还包括一个用于管理数据库和服务器设置的多种选项。 使用ODBC驱动程序:这是一个基础的数据库驱动程序,用于通过SQL语言连接…

    Java 2023年6月15日
    00
  • java读取文件和写入文件的方式(简单实例)

    Java读取文件和写入文件的方式(简单实例) 在Java中读取文件和写入文件是非常常见的操作,通常我们读取一个文件的内容,进行一些处理,然后写入到新的文件中。下面是Java读取文件和写入文件的两种方式,它们在效果上是一样的,只是实现方式不同。 读取文件 方式一:使用BufferedReader import java.io.*; public class R…

    Java 2023年5月20日
    00
  • Maven打包jar生成javadoc文件和source文件代码实例

    接下来将为您详细讲解”Maven打包jar生成javadoc文件和source文件代码实例”的完整攻略。 1. 前置条件 在进行生成javadoc文件和source文件代码之前,需要确保本机已经安装了JDK和Maven。 2. 创建Maven项目 在本地创建一个Maven项目并在其中添加需要进行打包的代码。 <project xmlns="h…

    Java 2023年5月19日
    00
  • 美团面经总结(2023最新)

    分享一份读者面试美团的面经,比较有参考性,感兴趣的可以看看~ 一面 消息队列如何保证可靠性 消息队列如何保证消息幂等性 消息队列的优缺点 为什么用b+树 聚集索引和主键区别,其他引擎怎么做的 平时数据库编码 explain参数 http报文参数有哪些吗? 做题,链表奇偶有序输出 二面 自我介绍 有哪些排序算法? 介绍下快排/堆排/归并排序。 数据库中的索引应…

    Java 2023年5月7日
    00
  • 微信小程序实现列表页的点赞和取消点赞功能

    下面是实现微信小程序列表页点赞和取消点赞的攻略。该攻略将分为以下几个步骤: 前置准备 列表页数据的绑定和渲染 点赞和取消点赞功能的实现 点赞和取消点赞功能的联动 示例说明 前置准备 在开始实现之前,你需要先了解微信小程序的基本知识,并且在微信开发者工具中创建一个小程序项目。你还需要准备一个与列表页数据相关的接口,用于获取列表页数据、点赞和取消点赞等操作。 列…

    Java 2023年5月30日
    00
  • Java参数传递及值传递实现原理详解

    Java参数传递及值传递实现原理详解 Java中的参数传递涉及到两个概念:引用传递和值传递。本文将详细讲解Java参数传递及值传递的实现原理。 引用传递 引用传递是指将实参的地址作为形参传递。在Java中,在方法调用时,如果参数是对象类型,那么实参传递给形参的是对象地址的副本。也就是说,实参和形参指向同一块内存地址。 示例: public class Per…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部