java get properties_Java 读取 .properties 配置文件的几种方式

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 package com.test.properties;

2

3 import java.io.BufferedInputStream;

4 import java.io.File;

5 import java.io.FileInputStream;

6 import java.io.IOException;

7 import java.io.InputStream;

8 import java.util.Enumeration;

9 import java.util.Properties;

10

11 import org.springframework.core.io.support.PropertiesLoaderUtils;

12

13 /**

14 *

15 * @ClassName: TestProperties

16 * @Description: 获取配置文件信息

17 * @date: 2017年11月25日 上午10:56:00

18 * @version: 1.0.0

19 */

20 public class TestProperties {

21

22

23 /**

24 *

25 * @Title: printAllProperty

26 * @Description: 输出所有配置信息

27 * @param props

28 * @return void

29 * @throws

30 */

31 private static void printAllProperty(Properties props)

32 {

33 @SuppressWarnings("rawtypes")

34 Enumeration en = props.propertyNames();

35 while (en.hasMoreElements())

36 {

37 String key = (String) en.nextElement();

38 String value = props.getProperty(key);

39 System.out.println(key + " : " + value);

40 }

41 }

42

43 /**

44 * 根据key读取value

45 *

46 * @Title: getProperties_1

47 * @Description: 第一种方式:根据文件名使用spring中的工具类进行解析

48 * filePath是相对路劲,文件需在classpath目录下

49 * 比如:config.properties在包com.test.config下,

50 * 路径就是com/test/config/config.properties

51 *

52 * @param filePath

53 * @param keyWord

54 * @return

55 * @return String

56 * @throws

57 */

58 public static String getProperties_1(String filePath, String keyWord){

59 Properties prop = null;

60 String value = null;

61 try {

62 // 通过Spring中的PropertiesLoaderUtils工具类进行获取

63 prop = PropertiesLoaderUtils.loadAllProperties(filePath);

64 // 根据关键字查询相应的值

65 value = prop.getProperty(keyWord);

66 } catch (IOException e) {

67 e.printStackTrace();

68 }

69 return value;

70 }

71

72 /**

73 * 读取配置文件所有信息

74 *

75 * @Title: getProperties_1

76 * @Description: 第一种方式:根据文件名使用Spring中的工具类进行解析

77 * filePath是相对路劲,文件需在classpath目录下

78 * 比如:config.properties在包com.test.config下,

79 * 路径就是com/test/config/config.properties

80 *

81 * @param filePath

82 * @return void

83 * @throws

84 */

85 public static void getProperties_1(String filePath){

86 Properties prop = null;

87 try {

88 // 通过Spring中的PropertiesLoaderUtils工具类进行获取

89 prop = PropertiesLoaderUtils.loadAllProperties(filePath);

90 printAllProperty(prop);

91 } catch (IOException e) {

92 e.printStackTrace();

93 }

94 }

95

96 /**

97 * 根据key读取value

98 *

99 * @Title: getProperties_2

100 * @Description: 第二种方式:使用缓冲输入流读取配置文件,然后将其加载,再按需操作

101 * 绝对路径或相对路径, 如果是相对路径,则从当前项目下的目录开始计算,

102 * 如:当前项目路径/config/config.properties,

103 * 相对路径就是config/config.properties

104 *

105 * @param filePath

106 * @param keyWord

107 * @return

108 * @return String

109 * @throws

110 */

111 public static String getProperties_2(String filePath, String keyWord){

112 Properties prop = new Properties();

113 String value = null;

114 try {

115 // 通过输入缓冲流进行读取配置文件

116 InputStream InputStream = new BufferedInputStream(new FileInputStream(new File(filePath)));

117 // 加载输入流

118 prop.load(InputStream);

119 // 根据关键字获取value值

120 value = prop.getProperty(keyWord);

121 } catch (Exception e) {

122 e.printStackTrace();

123 }

124 return value;

125 }

126

127 /**

128 * 读取配置文件所有信息

129 *

130 * @Title: getProperties_2

131 * @Description: 第二种方式:使用缓冲输入流读取配置文件,然后将其加载,再按需操作

132 * 绝对路径或相对路径, 如果是相对路径,则从当前项目下的目录开始计算,

133 * 如:当前项目路径/config/config.properties,

134 * 相对路径就是config/config.properties

135 *

136 * @param filePath

137 * @return void

138 * @throws

139 */

140 public static void getProperties_2(String filePath){

141 Properties prop = new Properties();

142 try {

143 // 通过输入缓冲流进行读取配置文件

144 InputStream InputStream = new BufferedInputStream(new FileInputStream(new File(filePath)));

145 // 加载输入流

146 prop.load(InputStream);

147 printAllProperty(prop);

148 } catch (Exception e) {

149 e.printStackTrace();

150 }

151 }

152

153 /**

154 * 根据key读取value

155 *

156 * @Title: getProperties_3

157 * @Description: 第三种方式:

158 * 相对路径, properties文件需在classpath目录下,

159 * 比如:config.properties在包com.test.config下,

160 * 路径就是/com/test/config/config.properties

161 * @param filePath

162 * @param keyWord

163 * @return

164 * @return String

165 * @throws

166 */

167 public static String getProperties_3(String filePath, String keyWord){

168 Properties prop = new Properties();

169 String value = null;

170 try {

171 InputStream inputStream = TestProperties.class.getResourceAsStream(filePath);

172 prop.load(inputStream);

173 value = prop.getProperty(keyWord);

174 } catch (IOException e) {

175 e.printStackTrace();

176 }

177 return value;

178 }

179

180 /**

181 * 读取配置文件所有信息

182 *

183 * @Title: getProperties_3

184 * @Description: 第三种方式:

185 * 相对路径, properties文件需在classpath目录下,

186 * 比如:config.properties在包com.test.config下,

187 * 路径就是/com/test/config/config.properties

188 * @param filePath

189 * @return

190 * @throws

191 */

192 public static void getProperties_3(String filePath){

193 Properties prop = new Properties();

194 try {

195 InputStream inputStream = TestProperties.class.getResourceAsStream(filePath);

196 prop.load(inputStream);

197 printAllProperty(prop);

198 } catch (IOException e) {

199 e.printStackTrace();

200 }

201 }

202

203

204 public static void main(String[] args) {

205 // 注意路径问题

206 String properties_1 = getProperties_1("com/test/config/config.properties", "wechat_appid");

207 System.out.println("wechat_appid = " + properties_1);

208 getProperties_1("com/test/config/config.properties");

209 System.out.println("*********************************************");

210 // 注意路径问题

211 String properties_2 = getProperties_2("configure/configure.properties", "jdbc.url");

212 System.out.println("jdbc.url = " + properties_2);

213 getProperties_2("configure/configure.properties");

214 System.out.println("*********************************************");

215 // 注意路径问题

216 String properties_3 = getProperties_3("/com/test/config/config.properties", "wechat_appid");

217 System.out.println("wechat_appid = " + properties_3);

218 getProperties_3("/com/test/config/config.properties");

219 }

220 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值