获取项目中Properties文件

在web项目中读取Properties文件配置:

properties文件内容:

name=tom
password=12345

1、使用 类名.class.getResourceAsStream()

private void readPropertiesByClass() {
        // 根目录是class文件所在目录,如果以 /开头从classpath目录中找db.properties;如果不以/开头从当前类所在的包中找
        InputStream inputStream = ReadPropertiesServlet.class
                .getResourceAsStream("/db.properties");
        Properties properties = new Properties();
        try {
            // 加载
            properties.load(inputStream);
            // getProperty()方法内部调用get()并将返回结果包装成String类型
            String name = properties.getProperty("name");
            System.out.println(name);
            System.out.println(properties.get("name"));// 返回Object类型
            // 失败,因为写入properties文件中的数据是以String类型存储的
            // int i = (int)properties.get("password");
            // System.out.println(i + 1);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

2、使用ServletContext#getResourceAsStream()

private void readPropertiesByServletContext() {
        // ServletContext方法读取配置 / 代表WebProject工程名,同级不需‘/‘
        ServletContext servletContext = getServletContext();
        InputStream inputStream = servletContext.getResourceAsStream("db.properties");
        Properties properties = new Properties();
        try {
            properties.load(inputStream);
            System.out.println(properties.getProperty("name"));
            System.out.println(properties.getProperty("password"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

3.使用ClassLoader加载配置文件

private void readPropertiesByClassLoader() {
        // 使用ClassLoader加载配置文件
        // 项目目录: web3\WEB-INF\classes
        ClassLoader classLoader = ReadPropertiesServlet.class.getClassLoader();
        // 上级目录:../
        InputStream inputStream = classLoader
                .getResourceAsStream("../../db.properties");
        // 获取Properties实例的两种方法
        // Properties properties = new Properties();
        Properties properties = System.getProperties();
        try {
            properties.load(inputStream);
            System.out.println(properties.getProperty("name"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
时间: 2024-08-03 11:21:46

获取项目中Properties文件的相关文章

JSP/Servlet Web应用中.properties文件的放置与读取

本地项目在本地类库中,我经常使用当前目录来放置.properties文件,这时调用方只要引用我的jar,并且将我的.properties放在他的classpath里面即可,比如:p.load(new FileInputStream("HanLP.properties"));这样类似下图的项目结构就可以跑起来:JSP/Servlet Web项目但是到了Web项目时,情况大不相同.在Tomcat下,classpath里只含apache-tomcat-8.0.14\bin目录下有限的...

使用System.getProperty("user.dir")获取项目下的文件内容

System.getProperty("user.dir")的作用是获取到项目所在的绝对路径,使用这个api就能获取项目下的文件 例如我想获取项目下/src/main/resources/config/certificate.properties的内容,可以使用如下代码: public static Properties getProperties(String pathInDemo) throws IOException { Properties properties = new P

在项目中拖动文件给出的提示详解

如果你在从项目外部往里拖放一个文件, 系统会给你提示如下一个Message, 那么他们到底都有什么用呢 我将利用a作为文件.A作为文件夹, 说明具体情况 1. Destination: Copy items if needed 如果你勾选这个选项, 那么A文件将从原路径copy到项目中(如果是项目中的文件, 将不会动, 如果是其他地方的文件就会复制过来).如果你删除[Move to Trish]之后你会发现项目中的文件被删除, 原路径的A文件没有被删除 如果你没有勾选这个文件, 那么此文件将会作

Android的学习之路(二)项目中原生文件的使用场景和文件介绍

1.src文件:java源代码存放目录 2.gen 文件:自动生成所有由android开发工具自动生成的文件,目录中最重要的就是R.java文件,这个文件由android开 发工具自动产生的.android开发工具会自动根据你存放res目录的资源,同步更新修稿R.java文件,正因为 R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java.R.java文件在应用中起到了字典的作 用,它包含了各种资源的ID,通过R.java,应用可以很方便的找到对应资源, 2.1R.java 

如何查看.Net源代码vs版本号以及C#项目中各文件的含义

查看.Net源代码vs版本号以及C#项目中各文件的含义 用记事本打开vs项目的.sln文件. 第2行就是这个源代码包的开发软件vs版本号了 注意了,如果是vs2003的sln文件通常没有这行,可以判断他的第一行的最后一部分文字 :  Format Version 8.00 Format Version 8.00   对应 vs2003 Format Version 9.00   对应  vs2005 Format Version 10.00  对应  vs2008 Format Version

Android项目中gen文件下R文件无法生成的解决的方法

帮一个网友解决R文件无法生成的问题,搜集了些材料特整理例如以下,刚開始学习的人參考他人代码时极易出现此种问题,一般都是xml文件出错,无法被正确解析. gen文件夹无法更新,或者gen文件夹下的R.JAVA文件无法生成 1.gen文件夹的用处 android gen文件夹下的R.java并非由用户创建,而是androidproject本身将android的资源进行自己主动"编号"(ID)值. 2.gen文件夹下R文件无法更新/生成的原因 1)res文件夹下的layout下的xml文件名

Android项目中gen文件下R文件无法生成的解决办法

帮一个网友解决R文件无法生成的问题,搜集了些材料特整理如下,初学者参考他人代码时极易出现此种问题,一般都是xml文件出错,无法被正确解析. gen目录无法更新,或者gen目录下的R.JAVA文件无法生成 1.gen目录的用处 android gen目录下的R.java并不是由用户创建,而是android工程本身将android的资源进行自动"编号"(ID)值. 2.gen目录下R文件无法更新/生成的原因 1)res目录下的layout下的xml文件名有错.按照android的命名规范是

工程中properties文件处理方法类

功能:properties文件加载.取得key对应的值 1 import java.util.ResourceBundle; 2 3 /** 4 * 工程中properties文件处理方法类 5 */ 6 public class ConfigHolder { 7 private static ResourceBundle bundle; 8 9 /** 10 * 加载properties文件 11 */ 12 private static void loadConfig() { 13 if(b

背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理

[源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 获取 Package 中的文件 可移动存储中的文件操作 “库”管理 示例1.演示如何获取 Package 中的文件FileSystem/PackageData/Demo.xaml <Page x:Class="Windows10.FileSystem.PackageData.D