Java中,配置文件的加载

本文介绍了Java中加载配置文件的三种方法:通过FileInputStream读取相对路径的配置文件,使用类加载器的getResourceAsStream方法读取类路径下的配置文件,以及通过类直接加载配置文件。在Java Web开发中,推荐使用类加载器加载配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

config.properties为配置文件,配置文件中的内容:name=沈可馨。

加载配置文件的方法一:

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,配置文件如果放在整个项目下
        InputStream inStream=new FileInputStream("config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,配置文件如果放在项目下的src源文件夹下
        InputStream inStream=new FileInputStream("src/config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,配置文件如果放在项目下的src源文件夹下的子文件夹下
        InputStream inStream=new FileInputStream("src/com/skx/config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

上面的三种情况都可以加载配置文件,读取到配置文件中的属性值。
综上所述:
如果用InputStream inStream=new FileInputStream(“配置文件路径名”)获取配置文件,则配置文件可以放在项目下,也可以放在项目下的子文件中,相应的配置文件的路径名应该从此项目文件夹开始算起。此时的路径是相对路径,相对的是该项目的目录(路径)。如上面三个例子。

加载配置文件的方法二:

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,用类加载器加载
        InputStream inStream=Test1.class.getClassLoader().getResourceAsStream("com/skx/config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,用类加载器加载
        InputStream inStream=Test1.class.getClassLoader().getResourceAsStream("com/skx/resource/config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

这种方法是我们在学习框架中加载配置文件用的最多也是最常用的方法。也就是,如果用类加载器的getResourceAsStream方法获得配置文件,必须将配置文件放在class path 路径(bin文件)下。此时的路径是相对路径,相对的是class path 路径(bin文件)。如图所示:

这里写图片描述

通俗的讲,就是将配置文件放在包下。getResourceAsStream方法中的路径名就是从包名开始算起。

加载配置文件的方法三:

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,直接用类获得配置文件,其实默认还是使用的加载器加载
        InputStream inStream=Test1.class.getResourceAsStream("config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,直接用类获得配置文件,其实默认还是使用的加载器加载
        InputStream inStream=Test1.class.getResourceAsStream("resource/config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

该方法直接用类来加载配置文件,其中配置文件应该放在此类所在的目录下,getResourceAsStream方法中的路径也是相对路径,相对于该类的目录。同时也可以使用绝对路径加载,如下:

package com.skx;

import java.io.*;
import java.util.*;

public class Test1 {
    public static void main(String[] args) throws Exception {

        Properties pp=new Properties();
        //创建InputStream对象,直接用类获得配置文件,其实默认还是使用的加载器加载
        InputStream inStream=Test1.class.getResourceAsStream("/com/skx/resource/config.properties");
        pp.load(inStream);

        String name=pp.getProperty("name");
        System.out.println("名字="+name);
    }
}

这里写图片描述

此时的绝对路径是从class path路径(bin目录)开始算的。

特别说明:
在开发java web时,用类加载器加载配置文件。
FileInputStream_fis=SqlHelper.class.getClassLoader().getResourceAsStream(“dbInfo.properties”);其中,dbInfo.properties文件放在src(源文件)目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值