对properties的基本操作

public class PropertiesUtil {
// 是否是文件
public static boolean isFile = false;
// 路径
public static String path;
// 单列properties
private static Properties properties = null;
// 构造方法初始化文件
public PropertiesUtil(String path) {
this.path = path;
File file = new File(path);
isFile = file.isFile();
// TODO Auto-generated constructor stub
}
public boolean isFile(String path){
return isFile;
};
// 把配置文件转化为对象
public Object propertiesToObject(Object object,String path) throws Exception, NoSuchMethodException{
if(!isFile(path)){
return null;
}
Field[] files = object.getClass().getDeclaredFields();
Properties properties = load(path);
for(Field field:files){
String fieldName = field.getName();
Class type = field.getType();
String methodFieldName = "set"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1);
Method method = object.getClass().getMethod(methodFieldName, type);
method.invoke(object, properties.get(fieldName));
}
return object;
}
// 获取配置文件中所有的键值
public List<Object> getListKey(String path) throws IOException{
if(!isFile(path)){
return null;
}
Properties properties = load(path);
Set<Object> set = properties.keySet();
List<Object>list = new ArrayList<Object>(set);
return list;
}
// 获取配置文件中所有的值
public List<Object> getListValue(String path) throws IOException{
if(!isFile(path)){
return null;
}
Properties properties = load(path);
List<Object> list = new ArrayList<Object>();
for(Object key:properties.keySet()){
list.add(properties.get(key));
}
return list;
}
// 配置文件转成map集合
public Map<String,Object> getMapKeyValue(String path) throws IOException{
if(!isFile(path)){
return null;
}
Map<String,Object> resultMap = new HashMap<String,Object>();
Properties properties = load(path);
for(Object key : getListKey(path)){
resultMap.put((String)key, properties.get(key));
}
return resultMap;
}
public Properties load(String path) throws IOException{
if(properties == null){
InputStream stream = new FileInputStream(path);
properties = new Properties();
properties.load(stream);
}
return properties;
}
public static void main(String[]args) throws NoSuchMethodException, Exception{
String path = "D:/ceshiproperties/admessage.properties";
PropertiesUtil util = new PropertiesUtil(path);
System.out.println("此文件是否是一个文件"+util.isFile(path));
List<Object> listKey = util.getListKey(path);
for(Object object:listKey){
System.out.println("配置文件中所有的key值"+object.toString());
}
List<Object> listValue=util.getListValue(path);
for(Object object:listValue){
System.out.println("配置文件中所有的value"+object.toString());
}
AdMessage adMessage = new AdMessage();
util.propertiesToObject(adMessage, path);
System.out.println("值1"+adMessage.getMessage_content_changestatus_());
System.out.println("值2"+adMessage.getMessage_content_delete_());
System.out.println(util.getMapKeyValue(path));
System.exit(0);
}
}

对象bean的构造

public class AdMessage {
private String message_subject_of_delete_;
private String message_subject_changestatus_;
private String message_content_delete_;
private String message_content_changestatus_;
public String getMessage_subject_of_delete_() {
return message_subject_of_delete_;
}
public void setMessage_subject_of_delete_(String message_subject_of_delete_) {
this.message_subject_of_delete_ = message_subject_of_delete_;
}
public String getMessage_subject_changestatus_() {
return message_subject_changestatus_;
}
public void setMessage_subject_changestatus_(
String message_subject_changestatus_) {
this.message_subject_changestatus_ = message_subject_changestatus_;
}
public String getMessage_content_delete_() {
return message_content_delete_;
}
public void setMessage_content_delete_(String message_content_delete_) {
this.message_content_delete_ = message_content_delete_;
}
public String getMessage_content_changestatus_() {
return message_content_changestatus_;
}
public void setMessage_content_changestatus_(
String message_content_changestatus_) {
this.message_content_changestatus_ = message_content_changestatus_;
}

}

配置文件properties

路径:D:/ceshiproperties/admessage.properties

message_subject_of_delete_=liubing
message_subject_changestatus_=\u60A8\u6709\u4E00\u6761{0}\u6570\u636E\u88AB\u6FC0\u6D3B
message_content_delete_=15
message_content_changestatus_={0}\u6FC0\u6D3B\u4E86\u4E00\u6761{1}\u6570\u636E

properties配置文件的基本操作的更多相关文章

  1. 读取.properties配置文件

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

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

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

  3. properties 配置文件中值换行的问题

    在使用properties配置文件的时候我们经常碰到如下两个问题 1:当a=b中的b值内容特别长的时候为了阅读方便我们手动换行,但如果我们直接回车那么后面的数据就会丢失.那如何解决呢? 例如: a=a ...

  4. properties配置文件的读取和写入

    /** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...

  5. java读取properties配置文件方法(一)

    为了修改项目参数方便,需要使用properties配置文件: 首先是需要三个jar包(不同的jar包,读取配置文件的方式会有所不同,这里使用的是2.6版本的jar包) commons configur ...

  6. java 顺序 读写 Properties 配置文件

    java 顺序 读写 Properties 配置文件 支持中文 不乱码 java 顺序 读写 Properties 配置文件 ,java默认提供的Properties API 继承hashmap ,不 ...

  7. jdbc基础 (二) 通过properties配置文件连接数据库

    csdn博文地址:jdbc基础 (二) 通过properties配置文件连接数据库 上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用. 因为jdbc对数据库的驱动加载.连接 ...

  8. Java 获取*.properties配置文件中的内容 ,常见的两种方法

    import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...

  9. Java读取Properties配置文件

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

随机推荐

  1. 通往大神之路,百度Java面试题前200页。

    基本概念 操作系统中 heap 和 stack 的区别 什么是基于注解的切面实现 什么是 对象/关系 映射集成模块 什么是 Java 的反射机制 什么是 ACID BS与CS的联系与区别 Cookie ...

  2. Python判断一个字符串中是否存在多个子串中的一个

    在使用python的开发过程中,常常需要判断,字符串中是否存在子串的问题, 但判断一个字符串中是否存在多个字串中的一个时,如if (a or b) in c或者if x contains a|b|c| ...

  3. UVALive 4794 Sharing Chocolate

    Sharing Chocolate Chocolate in its many forms is enjoyed by millions of people around the world ever ...

  4. 我爱Linux

    这道题卡了好久,题是一张图片,打开看到看提示以为是用哪个Linux命令处理,直到后来知道后面是python序列化文件的数据,将FF D9后保存出来,将序列化文件读出来写脚本把它画出来 import p ...

  5. MyBatis操作数据库(基本增删改查)

    一.准备所需工具(jar包和数据库驱动) 网上搜索下载就可以 二.新建一个Java project 1.将下载好的包导入项目中,build path 2.编写MyBatis配置文件:主要填写prope ...

  6. RPC协议的介绍

    根据网上搜索的一些资料摘抄汇总的,如果有误,欢迎斧正. 早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来.假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进 ...

  7. shell read变量

  8. zabbix生产环境案例(三)

    生产环境案例(三) 链接:https://pan.baidu.com/s/1q5YwJMTcZLcS5OQ0iOu44A 提取码:8gdi 复制这段内容后打开百度网盘手机App,操作更方便哦 1. Z ...

  9. netstat 指令

    netstat 指令将所有的网络端口监听情况进行罗列 语法  netstat -tuln 几个常见的服务端口 例  通过grep 查看端口来获得上面的服务是否开启,并给予提示 1 #!/bin/bas ...

  10. html浮动小问题

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...