java 快捷操作Properties 辅助类

来源:互联网 发布:网站程序员工资 编辑:程序博客网 时间:2024/06/15 04:31

我们在操作Properties 时候一般都是按照键值来操作,但是如果我们在操作一个复杂 的Properties 时候这样先进行很多操作就显得累赘。比如我们想获取Spring Boot 的 Properties 时候。里面很多复杂的键。我们就需要考虑找一个工具类来实现。

package com.yoke.util;import java.util.ArrayList;import java.util.Enumeration;import java.util.HashSet;import java.util.Properties;import java.util.StringTokenizer;/** * */public class PropertiesParser {    Properties props = null;    public PropertiesParser(Properties props) {        this.props = props;    }    public Properties getUnderlyingProperties() {        return this.props;    }    public String getStringProperty(String name) {        return this.getStringProperty(name, (String)null);    }    public String getStringProperty(String name, String def) {        String val = this.props.getProperty(name, def);        if(val == null) {            return def;        } else {            val = val.trim();            return val.length() == 0?def:val;        }    }    public String[] getStringArrayProperty(String name) {        return this.getStringArrayProperty(name, (String[])null);    }    public String[] getStringArrayProperty(String name, String[] def) {        String vals = this.getStringProperty(name);        if(vals == null) {            return def;        } else {            StringTokenizer stok = new StringTokenizer(vals, ",");            ArrayList strs = new ArrayList();            try {                while(stok.hasMoreTokens()) {                    strs.add(stok.nextToken().trim());                }                return (String[])((String[])strs.toArray(new String[strs.size()]));            } catch (Exception var7) {                return def;            }        }    }    public boolean getBooleanProperty(String name) {        return this.getBooleanProperty(name, false);    }    public boolean getBooleanProperty(String name, boolean def) {        String val = this.getStringProperty(name);        return val == null?def:Boolean.valueOf(val).booleanValue();    }    public byte getByteProperty(String name) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            throw new NumberFormatException(" null string");        } else {            try {                return Byte.parseByte(val);            } catch (NumberFormatException var4) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public byte getByteProperty(String name, byte def) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            return def;        } else {            try {                return Byte.parseByte(val);            } catch (NumberFormatException var5) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public char getCharProperty(String name) {        return this.getCharProperty(name, '\u0000');    }    public char getCharProperty(String name, char def) {        String param = this.getStringProperty(name);        return param == null?def:param.charAt(0);    }    public double getDoubleProperty(String name) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            throw new NumberFormatException(" null string");        } else {            try {                return Double.parseDouble(val);            } catch (NumberFormatException var4) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public double getDoubleProperty(String name, double def) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            return def;        } else {            try {                return Double.parseDouble(val);            } catch (NumberFormatException var6) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public float getFloatProperty(String name) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            throw new NumberFormatException(" null string");        } else {            try {                return Float.parseFloat(val);            } catch (NumberFormatException var4) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public float getFloatProperty(String name, float def) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            return def;        } else {            try {                return Float.parseFloat(val);            } catch (NumberFormatException var5) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public int getIntProperty(String name) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            throw new NumberFormatException(" null string");        } else {            try {                return Integer.parseInt(val);            } catch (NumberFormatException var4) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public int getIntProperty(String name, int def) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            return def;        } else {            try {                return Integer.parseInt(val);            } catch (NumberFormatException var5) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public int[] getIntArrayProperty(String name) throws NumberFormatException {        return this.getIntArrayProperty(name, (int[])null);    }    public int[] getIntArrayProperty(String name, int[] def) throws NumberFormatException {        String vals = this.getStringProperty(name);        if(vals == null) {            return def;        } else {            StringTokenizer stok = new StringTokenizer(vals, ",");            ArrayList ints = new ArrayList();            try {                while(stok.hasMoreTokens()) {                    try {                        ints.add(new Integer(stok.nextToken().trim()));                    } catch (NumberFormatException var8) {                        throw new NumberFormatException(" \'" + vals + "\'");                    }                }                int[] e = new int[ints.size()];                for(int i = 0; i < ints.size(); ++i) {                    e[i] = ((Integer)ints.get(i)).intValue();                }                return e;            } catch (Exception var9) {                return def;            }        }    }    public long getLongProperty(String name) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            throw new NumberFormatException(" null string");        } else {            try {                return Long.parseLong(val);            } catch (NumberFormatException var4) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public long getLongProperty(String name, long def) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            return def;        } else {            try {                return Long.parseLong(val);            } catch (NumberFormatException var6) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public short getShortProperty(String name) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            throw new NumberFormatException(" null string");        } else {            try {                return Short.parseShort(val);            } catch (NumberFormatException var4) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public short getShortProperty(String name, short def) throws NumberFormatException {        String val = this.getStringProperty(name);        if(val == null) {            return def;        } else {            try {                return Short.parseShort(val);            } catch (NumberFormatException var5) {                throw new NumberFormatException(" \'" + val + "\'");            }        }    }    public String[] getPropertyGroups(String prefix) {        Enumeration keys = this.props.propertyNames();        HashSet groups = new HashSet(10);        if(!prefix.endsWith(".")) {            prefix = prefix + ".";        }        while(keys.hasMoreElements()) {            String key = (String)keys.nextElement();            if(key.startsWith(prefix)) {                String groupName = key.substring(prefix.length(), key.indexOf(46, prefix.length()));                groups.add(groupName);            }        }        return (String[])((String[])groups.toArray(new String[groups.size()]));    }    public Properties getPropertyGroup(String prefix) {        return this.getPropertyGroup(prefix, false, (String[])null);    }    public Properties getPropertyGroup(String prefix, boolean stripPrefix) {        return this.getPropertyGroup(prefix, stripPrefix, (String[])null);    }    public Properties getPropertyGroup(String prefix, boolean stripPrefix, String[] excludedPrefixes) {        Enumeration keys = this.props.propertyNames();        Properties group = new Properties();        if(!prefix.endsWith(".")) {            prefix = prefix + ".";        }        while(true) {            String key;            do {                if(!keys.hasMoreElements()) {                    return group;                }                key = (String)keys.nextElement();            } while(!key.startsWith(prefix));            boolean exclude = false;            if(excludedPrefixes != null) {                for(int value = 0; value < excludedPrefixes.length && !exclude; ++value) {                    exclude = key.startsWith(excludedPrefixes[value]);                }            }            if(!exclude) {                String var9 = this.getStringProperty(key, "");                if(stripPrefix) {                    group.put(key.substring(prefix.length()), var9);                } else {                    group.put(key, var9);                }            }        }    }}

这个类来源于jsoup ,主要是对类似于SpringBoot 复杂的键来进行分组管理。

原创粉丝点击