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的键和值都是字符串 ...
随机推荐
- 可重入锁:ReentrantLock理解使用
(一)可重入性 可重入性描述这样的一个问题:一个线程在持有一个锁的时候,它内部能否再次(多次)申请该锁.如果一个线程已经获得了锁,其内部还可以多次申请该锁成功.那么我们就称该锁为可重入锁.通过以下伪代 ...
- Sql Server 表结构相关
1.库表列信息 --取所有库 SELECT Name FROM Master..SysDatabases ORDER BY Name --查询所有表 select name from 库名..syso ...
- Javascript生成器函数
function* 这种声明方式(function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个Generator 对象 示例: function* g ...
- Linux替换文件行首的空白字符
使用命令sed.cp.tail.cat 1.拷贝一个任意文件(生产环境切勿操作) cp /etc/profile /tmp 查看文件部分格式 cat /tmp/profile # /etc/profi ...
- LinkedList底层代码解析笔记
LinkedList是属于Sequence List,故遍历是用迭代器更快; LinkedList继承自AbstractSequenceList.实现了List及Deque接口.其实AbstractS ...
- LeetCode Array Easy169. Majority Element
Description Given an array of size n, find the majority element. The majority element is the element ...
- 【记录】Http 状态码整理
Http状态码: 1XX:信息,服务器收到请求,需要请求者继续执行操作 2XX:成功,操作被成功接收并处理 3XX:重定向,需要进一步的操作以完成请求 4XX:客户端错误,请求包含语法错误或无法完成请 ...
- Codeforces 1159E 拓扑排序
题意及思路:https://www.cnblogs.com/dd-bond/p/10859864.html 代码: #include <bits/stdc++.h> #define LL ...
- 【Luogu】【关卡2-2】交叉模拟(2017年10月)
任务说明:这里也是模拟,但是会混有些别的部分.思维难度不大,但是编写起来会有些难度.
- windows下注册ocx控件
OCX 是对象类别扩充组件(Object Linking and Embedding (OLE) Control Extension):是可执行的文件的一种,但不可直接被执行: 是 ocx 控件的扩展 ...