properties配置文件的基本操作
对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配置文件的基本操作的更多相关文章
- 读取.properties配置文件
方法1 public class SSOUtils { protected static String URL_LOGIN = "/uas/service/api/login/info&q ...
- java读取properties配置文件总结
java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1) ...
- properties 配置文件中值换行的问题
在使用properties配置文件的时候我们经常碰到如下两个问题 1:当a=b中的b值内容特别长的时候为了阅读方便我们手动换行,但如果我们直接回车那么后面的数据就会丢失.那如何解决呢? 例如: a=a ...
- properties配置文件的读取和写入
/** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...
- java读取properties配置文件方法(一)
为了修改项目参数方便,需要使用properties配置文件: 首先是需要三个jar包(不同的jar包,读取配置文件的方式会有所不同,这里使用的是2.6版本的jar包) commons configur ...
- java 顺序 读写 Properties 配置文件
java 顺序 读写 Properties 配置文件 支持中文 不乱码 java 顺序 读写 Properties 配置文件 ,java默认提供的Properties API 继承hashmap ,不 ...
- jdbc基础 (二) 通过properties配置文件连接数据库
csdn博文地址:jdbc基础 (二) 通过properties配置文件连接数据库 上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用. 因为jdbc对数据库的驱动加载.连接 ...
- Java 获取*.properties配置文件中的内容 ,常见的两种方法
import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...
- Java读取Properties配置文件
1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,使用键值对的形式来保存属性集.不过Properties的键和值都是字符串 ...
随机推荐
- Scrapy框架: middlewares.py设置
# -*- coding: utf-8 -*- # Define here the models for your spider middleware # # See documentation in ...
- python- 属性 静态方法,类方法
一,面向对象结构与成员 1,1 面向对象结构分析: 那么每个大区域又可以分为多个小部分: class A: company_name = '老男孩教育' # 静态变量(静态字段) __iphone = ...
- webservice的使用-axis1-02
1.webservice传递javabean 自定义javabean必须是可序列化的 如果javabean中有内部类必须是静态的,因为只有静态的类才可以序列化 如果javabean中用到了其他的jav ...
- 将rdlc报表作为资源嵌套使用
原文:将rdlc报表作为资源嵌套使用 如果我们准备在Windows Forms里面使用rdlc报表,那么会遇到一个问题:rdlc报表到底要不要作为附属文件的方式随程序发布? 这样做的优点是:报表可以后 ...
- linux下如何挂载磁盘
1.显示磁盘使用情况:#df 2.显示磁盘:#fdisk -l 3.格式化分区:#mkfs.ext4 /dev/vdb1 //注:将/dev/vdb1格式化为ext4类型(文件类型 ...
- DoubleCache
DoubleCache 指的是本地+redis两份缓存模式 本地缓存过期之后从redis读取新数据 redis缓存过期时,从业务里读取新数据. 设计原理: 利用 loadingCache的过期刷新来实 ...
- KiCAD批量修改丝印大小
KiCAD批量修改丝印大小 1.编辑->编辑文本与图片属性 2.范围 选择封装参考,活动 首选选择 “设定为指定值”,然后选择要修改的层,输入想要修改的参数 注意:文本高度与文本宽度比例要适中, ...
- pip配置阿里云源
Windows:打开计算机,在地址栏输入%appdata%,回车,进入用户文件夹,新建文件夹,命名为pip 在pip下新建pip.ini,输入以下内容 [global] timeout=6000ind ...
- poj 3744 矩阵快速幂+概率dp
题目大意: 输入n,代表一位童子兵要穿过一条路,路上有些地方放着n个地雷(1<=n<=10).再输入p,代表这位童子兵非常好玩,走路一蹦一跳的.每次他在 i 位置有 p 的概率走一步到 i ...
- vue 通过插槽分发内容
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...