栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用类加载器(ClassLoader)加载配置文件 [Java]

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用类加载器(ClassLoader)加载配置文件 [Java]

使用类加载器(ClassLoader)加载配置文件 我们之前就知道Properties是用来读取配置文件的类,但是我们使用Properties读取配置文件之前,我们先要将我们的配置文件加载到内存中来

将配置文件加载到内存中来就是将配置文件从硬盘中读取到内存中来,而加载的方式有两种: 方式一: 使用输入流将配置文件加载到内存中来

eg:

package 反射.类加载器加载配置文件;

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

public class Demo {
    public static void main(String[] args) throws IOException {
        
        Properties pros = new Properties();

        
        FileInputStream fis = new FileInputStream("jdbc.properties");

        //调用Properties类的load()方法来读取加载到内存中的配置文件
        pros.load(fis);

        
        String user = pros.getProperty("user");
        String password = pros.getProperty("password");

        //打印输出
        System.out.println("user = " + user + ",password = " + password);
    }
}
方式二: 使用ClassLoader(类加载器)将配置文件加载到内存中来

eg:

package 反射.类加载器加载配置文件;

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

public class Demo2 {
    public static void main(String[] args) throws IOException {
        
        Properties pros = new Properties();

        
        ClassLoader classLoader = Demo2.class.getClassLoader();

        
        InputStream is = classLoader.getResourceAsStream("jdbc.properties");

        
        pros.load(is);

        
        String user = pros.getProperty("user");
        String password = pros.getProperty("password");

        
        System.out.println("user = " + user + ",password = " + password);
    }
}
总结:
    使用输入流的形式加载文件到内存中时默认是在本项目之下

    如果是单元测试方法中,而不是main()方法中,那么就是默认在当前module之下 通过类加载器的getResourceAsStream()方法来加载文件到内存中默认是在本项目的src之下

    如果是在单元测试方法中,而不是main()方法中,那么就是在当前module的src之下 单元测试方法就是使用@Test注解标签的方法

    单元测试和main()方法一样也可以运行

补充:

我们一般建议将文件存储在项目中的src之下,而不是直接存储在当前项目中,因为以后我们在学习到web前端之后我们部署到Tomcat服务器中之后,本项目之下的配置文件就会缺失,所以我们建议将文件放在项目的src之下

那么有的人会提出疑问: “如果我们将文件放到了项目的src之下,但是这个时候我们使用输入流加载文件到内存时怎么办?”

我们知道使用输入流的方式加载文件默认是在当前项目之下查找,那么这个时候我们只要在我们要加载的文件前面加上src/即可

那么不就相当于是在当前项目之下的src之下查找了eg:

FileInputStream fis = new FileInputStream("src/jdbc.properties");

//或者换成src\也是一样的
FileInputStream fis2 = new FileInputStream("src\jdbc.properties");
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号