public abstract class ReadProperties {

     public ReadProperties() {}

     /**
* 回调函数,由调用者处理
* @param key
* @param value
*/
public abstract void dealKeyAndValue(String key, String value); /**
* 根据包路径解析
* @param packagePath
* @throws IOException
*/
public void read(String packagePath) throws IOException {
InputStream is = this.getClass().getResourceAsStream(packagePath);
read(is);
} /**
* 根据文件的绝对路径解析
* @param absolutePath
* @throws IOException
*/
public void readFile(String absolutePath) throws IOException {
read(new File(absolutePath));
} /**
* 根据{@link File}解析
* @param file
* @throws IOException
*/
public void read(File file) throws IOException {
read(new FileInputStream(file));
} /**
* 根据{@link InputStream}解析
* @param is
* @throws IOException
*/
public void read(InputStream is) throws IOException {
Properties properties = new Properties();
try {
// Properties文件会出现乱码问题,以UTF-8的方式打开
properties.load(new InputStreamReader(is, "UTF-8"));
Enumeration<Object> keys = properties.keys(); while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
String value = properties.getProperty(key);
properties.get(key); dealKeyAndValue(key, value);
}
} finally {
is.close();
}
} }

使用:
在src下新建一个test.properties文件如下:

执行解析:

 public class Test {

     public static void main(String[] args) throws Exception {
new ReadProperties() {
@Override
public void dealKeyAndValue(String key, String value) {
System.out.println(key + " = " + value);
}
}.read("/test.properties");;
} }

结果如下:

【Java】Properties文件的解析的更多相关文章

  1. Java Properties集合基础解析

    Java Properties集合基础解析 本期学习的properties集合是项目中经常用到的操作 什么是Properties集合? java.util.Properties集合继承于Hashtab ...

  2. java properties文件转义字符和中文乱码解决

    properties文件的分隔符是   =或者 : 第一次出现的就是分割符,第二次出现的也不需要转义,也即是(忽略掉[],只是着重描述字符) [\=]     [\:]   或者  [=]  [:] ...

  3. properties文件的解析

    此文章是从网上看到一篇实用小文章,感觉不过,摘录下来的!如有问题,可及时联系,可立刻做相应处理! Java读取.properties 配置文件的几种方法 在做java工程时, 经常会将一些配置信息放到 ...

  4. java properties 文件中书写相对路径

    工程src下的properties 文件要引用发布到D:\work\apache-tomcat-7.0.52\webapps\项目名称\certs这个地址下的文件,properties 中的文件路径应 ...

  5. log4j.properties文件无法解析

    普通工程:log4j.properties文件必须放在src根目录下

  6. log4j 日志脱敏处理 + java properties文件加载

    Java 加载Properties 配置文件: ResourceBundle bundle = ResourceBundle.getBundle("log4j_filter"); ...

  7. Java properties文件用法

    package com.suyang.properties; import java.io.FileInputStream; import java.io.FileNotFoundException; ...

  8. 自定义Yaml解析器替换Properties文件

    自定义Yaml解析器替换Properties文件 项目结构 案例代码 配置类SpringConfiguration @Configuration @Import(JdbcCofnig.class) @ ...

  9. java解析properties文件

    在自动化测试过程中,经常会有一些公用的属性要配置,以便后面给脚本使用,我们可以选择xml, excel或者json格式来存贮这些数据,但其实java本身就提供了properties类来处理proper ...

随机推荐

  1. 我所理解Java集合框架的部分的使用(Collection和Map)

    所谓集合,就是和数组类似——一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接 ...

  2. optimizer

    在很多机器学习和深度学习的应用中,我们发现用的最多的优化器是 Adam,为什么呢? 下面是 TensorFlow 中的优化器, https://www.tensorflow.org/api_guide ...

  3. Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)

    Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁.偏向锁) Java 并发编程 ...

  4. Senparc.Weixin SDK 微信公众号 .NET 开发教程 索引

    Senparc.WeixinSDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享.也欢迎大 ...

  5. Java 中的锁机制

    多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发(线程安全)问题.解决并发问题可以用锁. java的内置锁: 每个java对象都可以用做一个实现同步的锁,这些锁称为内置锁.线程进入同步 ...

  6. Day10:html和css

    Day10:html和css <html> <body> <h1>标题</h1> <p>段落</p> </body> ...

  7. .Net Core新建解决方案,添加项目引用,使用VSCode调试

    并不是我自己琢磨的,是看了别人学习的,因为写的都不完整,所以就整理一下记录后面忘了回看. 反正.Net Core是跨平台的,就不说在什么系统上了.假设我要建一个名为Doggie的解决方案,里面包含了一 ...

  8. Linux系统 - 源码编译安装Nginx

    什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...

  9. ionic3项目 出现 No provider for ApplicationInitStatus!

    出现No provider for ApplicationInitStatus!原因是在app.module.ts文件忘记导入BrowserModule导致的,打开app.module.ts文件添加以 ...

  10. mysql 开发基础系列15 索引的设计和使用

    一.概述 所有mysql 列类型都可以被索引,是提高select查询性能的最佳方法. 根据存储引擎可以定义每个表的最大索引数和最大索引长度,每种引擎对每个表至少支持16个索引,总索引长度至少为256字 ...