PropertiesUtil 获取文件属性值
Posted donnnnnn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PropertiesUtil 获取文件属性值相关的知识,希望对你有一定的参考价值。
有时候不要把一些属性值写死在代码中,而是写在配置在文件中,方便更改
PropertiesUtil工具类:读取key-value形式的配置文件,根据key获得value值
1、测试类
public class Test{ private static PropertiesUtil propertiesUtil = new PropertiesUtil("file.properties"); //根据文件中的key获取value值 String value = propertiesUtil.getStringProperty("文件中的key"); }
2、PropertiesUtil.java工具类
package com.util; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collection; import java.util.Properties; import java.util.Set; import org.apache.log4j.Logger; public class PropertiesUtil { private static final Logger LOGGER = Logger.getLogger(PropertiesUtil.class); private final Properties props; public PropertiesUtil(final Properties props) { this.props = props; } public PropertiesUtil(final String propertiesFileName) { final Properties properties = new Properties(); InputStreamReader in = null; try { in = new InputStreamReader(new FileInputStream(this.getClass().getResource("/").getPath()+propertiesFileName), "UTF-8"); /* * 获取当前工程根目录 * in = new InputStreamReader(new FileInputStream(System.getProperty("user.dir") + File.separator + propertiesFileName), "UTF-8"); */ properties.load(in); } catch (final IOException ioe) { LOGGER.error("Unable to read " + propertiesFileName, ioe); } finally { if (in != null) { try { in.close(); } catch (final IOException ioe) { LOGGER.error("Unable to close " + propertiesFileName, ioe); } } } this.props = properties; } public String getStringProperty(final String name) { return props.getProperty(name); } public int getIntegerProperty(final String name, final int defaultValue) { String prop = props.getProperty(name); if (prop != null) { try { return Integer.parseInt(prop); } catch (final Exception ignored) { return defaultValue; } } return defaultValue; } public long getLongProperty(final String name, final long defaultValue) { String prop = props.getProperty(name); if (prop != null) { try { return Long.parseLong(prop); } catch (final Exception ignored) { return defaultValue; } } return defaultValue; } public float getFloatProperty(final String name,final float defaultValue) { String prop = props.getProperty(name); if (prop != null) { try { return Float.parseFloat(prop); } catch (final Exception ignored) { return defaultValue; } } return defaultValue; } public String getStringProperty(final String name, final String defaultValue) { final String prop = getStringProperty(name); return (prop == null) ? defaultValue : prop; } public boolean getBooleanProperty(final String name) { return getBooleanProperty(name, false); } public boolean getBooleanProperty(final String name, final boolean defaultValue) { final String prop = getStringProperty(name); return (prop == null) ? defaultValue : "true".equalsIgnoreCase(prop); } public Set<Object> keySet() { return props.keySet(); } public Collection<Object> values() { return props.values(); } }
以上是关于PropertiesUtil 获取文件属性值的主要内容,如果未能解决你的问题,请参考以下文章
3.springboot:springboot配置文件(配置文件YAML属性文件值注入<@Value@ConfigurationProperties@PropertySource,@Im(代码片
3springboot:springboot配置文件(配置文件YAML属性文件值注入<@Value@ConfigurationProperties@PropertySource,@Imp(代码片