一.Properties类解读:

1.Properties类本质其实还是HashTabe,及底层的实现是HashTable

public
class Properties extends Hashtable<Object,Object>

可以看到Properties继承了HashTable类,HashTable底层是以数组+链表的形式实现的(jdk1.7,jdk1.8就变成了数组+链表+红黑树的结构);HashTable这种数据结构中可以存放很多种数据类型,但是Properties类只支持存储String类型的key/value,有api文档为证:

2. 所以Properties类中不建议使用父类HashTable中的put/putAll方法,因为这有可能会插入一些非字符串的键值,以api问档为证(其实我就是翻译了一遍文档):

3.Properties类可以从流中读取或者保存到流中。

上api:

二.

方式一:直接使用流的方式加载properties文件

package com.tust.test.properties;

import java.io.FileInputStream;
import java.util.Properties; public class PropertiesTest {
public static void main(String[] args) {
try {
Properties properties = new Properties();
/*
当使用IO流来加载properties文件的时候
FileInputStream fis = new FileInputStream("propertiesTest1.properties");来读取文件的时候,默认是在当前module(当前工程下)下查找该properties文件;
当然如果properties属性文件不在当前模块下的时候,可以指定具体的路径:
FileInputStream fis = new FileInputStream("src\\resources\\propertiesTest1.properties");
*/
//FileInputStream fis = new FileInputStream("propertiesTest1.properties");
FileInputStream fis = new FileInputStream("src\\resources\\propertiesTest1.properties");
properties.load(fis);
System.out.println(properties.getProperty("name"));
System.out.println(properties.getProperty("age"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

方式二:使用反射加载properties配置文件

package com.tust.test.properties;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; public class PropertiesTest {
public static void main(String[] args) { try {
Properties properties = new Properties();
/*
当时用类加载器去加载properties属性文件的时候,默认在是在当前module(当前项目)的src下;
如果属性文件不在src下,比如是在src/resources下,那么使用:
InputStream resourceAsStream = PropertiesTest.class.getClassLoader().getResourceAsStream("src\\resorces\\propertiesTest1.properties");就不行
*/
InputStream resourceAsStream = PropertiesTest.class.getClassLoader().getResourceAsStream("propertiesTest1.properties");
properties.load(resourceAsStream);
System.out.println(properties.getProperty("name"));
System.out.println(properties.getProperty("age"));
} catch (IOException e) {
e.printStackTrace();
}
}
}

配置文件不建议写在当前module(项目下),建议写在src下,如果使用方式一,那么应该在路径前添加src\\,如果使用方式二则不必。

读取.properties配置文件的方式的更多相关文章

  1. Java 读取 .properties 配置文件的几种方式

    Java 开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中.然而 XML 配置文件需要通过 DOM 或 SAX 方式解析,而读取 properties 配 ...

  2. java读取.properties配置文件的几种方法

    读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):一.通过jdk提供的java.util.Properties类.此类继承自java.util. ...

  3. Java 读取 .properties 配置文件

    java 开发中,经常要读取 properties 配置文件,下面介绍几种读取方式: 1.基于 InputStream 读取配置文件 该方式的优点在于可以读取任意路径下的配置文件 Properties ...

  4. javaweb 读取properties配置文件参数

    场景1:在servlet中读取properties配置文件参数 protected void doGet(HttpServletRequest request, HttpServletResponse ...

  5. 【转载】java读取.properties配置文件的几种方法

    读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):一.通过jdk提供的java.util.Properties类.此类继承自java.util. ...

  6. 读取.properties配置文件

    方法1 public  class SSOUtils { protected static String URL_LOGIN = "/uas/service/api/login/info&q ...

  7. java读取properties配置文件总结

    java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1) ...

  8. Java读取Properties配置文件

    1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,使用键值对的形式来保存属性集.不过Properties的键和值都是字符串 ...

  9. java读取properties配置文件[转]

    网上文章常见的几种读取.properties文件的方式 1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInp ...

随机推荐

  1. Java初学者作业——定义一个计算器类, 实现计算器类中加、 减、 乘、 除的运算方法, 每个方法能够接收2个参数。

    返回本章节 返回作业目录 需求说明: 定义一个计算器类, 实现计算器类中加. 减. 乘. 除的运算方法, 每个方法能够接收2个参数. 实现思路: 定义计算器类. 定义计算器类中加.减.乘.除的方法. ...

  2. 【】Hadoop生态圈介绍

    Technorati 标记: hadoop,生态圈,ecosystem,yarn,spark,入门 1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用 ...

  3. RabbitMQ --- 直连交换机 【 无回调方法,不能获取消费结果 】

    1.前言 消息队列除了kafka 外,还有许多种,比如RabbitMQ .ActiveMQ.ZeroMQ.JMQ等. 老牌的ActiveMQ ,底层使用Java写的,资源消耗大,速度也慢,但是适合 J ...

  4. Linux上天之路(十)之Linux磁盘管理

    主要内容 磁盘介绍 磁盘管理 磁盘限额 逻辑卷管理 磁盘阵列 1. 磁盘介绍 硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等.每个盘片有两面,都可记录信息.盘片 ...

  5. MongoDB之几种情况下的索引选择策略

    一.MongoDB如何选择索引 如果我们在Collection建了5个index,那么当我们查询的时候,MongoDB会根据查询语句的筛选条件.sort排序等来定位可以使用的index作为候选索引:然 ...

  6. 360浏览器兼容模式下jsp页面访问不到js文件

    360浏览器兼容模式下jsp页面访问不到js文件 查看自己js中的语法问题,不要用ES6的语法,编译不了故找不到js文件 const var of 码出高效 java 比较 所有整型包装类对象之间值的 ...

  7. HUAWEI网络设备恢复Console口密码

    密码遗忘 本章介绍了Console口丢失的处理方法,建议用户妥善保管密码,并定期修改. 恢复Console口密码 设备提供如下方法恢复Console口密码.•方法一:通过STelnet/Telnet登 ...

  8. leeetcode 20. 有效的括号

    20. 有效的括号 问题描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的 ...

  9. Typecho 如何安装主题和插件

    Typecho的主题和插件都安装在Typecho的usr目录下,这个不是主机根目录的usr,是Typecho本身文件夹根目录下的usr. 里面有两个文件夹,plugins存放插件,themes存放主题 ...

  10. Choregraphe 2.8.6.23虚拟Nao机器人Socket is not connected

    Traceback (most recent call last): File "c:/Users/fengmao/OneDrive - University of Wollongong/J ...