对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. 可重入锁:ReentrantLock理解使用

    (一)可重入性 可重入性描述这样的一个问题:一个线程在持有一个锁的时候,它内部能否再次(多次)申请该锁.如果一个线程已经获得了锁,其内部还可以多次申请该锁成功.那么我们就称该锁为可重入锁.通过以下伪代 ...

  2. Sql Server 表结构相关

    1.库表列信息 --取所有库 SELECT Name FROM Master..SysDatabases ORDER BY Name --查询所有表 select name from 库名..syso ...

  3. Javascript生成器函数

    function* 这种声明方式(function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个Generator 对象 示例: function* g ...

  4. Linux替换文件行首的空白字符

    使用命令sed.cp.tail.cat 1.拷贝一个任意文件(生产环境切勿操作) cp /etc/profile /tmp 查看文件部分格式 cat /tmp/profile # /etc/profi ...

  5. LinkedList底层代码解析笔记

    LinkedList是属于Sequence List,故遍历是用迭代器更快; LinkedList继承自AbstractSequenceList.实现了List及Deque接口.其实AbstractS ...

  6. LeetCode Array Easy169. Majority Element

    Description Given an array of size n, find the majority element. The majority element is the element ...

  7. 【记录】Http 状态码整理

    Http状态码: 1XX:信息,服务器收到请求,需要请求者继续执行操作 2XX:成功,操作被成功接收并处理 3XX:重定向,需要进一步的操作以完成请求 4XX:客户端错误,请求包含语法错误或无法完成请 ...

  8. Codeforces 1159E 拓扑排序

    题意及思路:https://www.cnblogs.com/dd-bond/p/10859864.html 代码: #include <bits/stdc++.h> #define LL ...

  9. 【Luogu】【关卡2-2】交叉模拟(2017年10月)

    任务说明:这里也是模拟,但是会混有些别的部分.思维难度不大,但是编写起来会有些难度.

  10. windows下注册ocx控件

    OCX 是对象类别扩充组件(Object Linking and Embedding (OLE) Control Extension):是可执行的文件的一种,但不可直接被执行: 是 ocx 控件的扩展 ...