博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java加载properties文件的六种方法总结
阅读量:5743 次
发布时间:2019-06-18

本文共 3750 字,大约阅读时间需要 12 分钟。

java加载properties文件的六种方法总结

java加载properties文件的六中基本方式实现

java加载properties文件的方式主要分为两大类:

》一种是通过import java.util.Properties类中的load(InputStream in)方法加载;

》另一种是通过import java.util.ResourceBundle类的getBundle(String baseName)方法加载。

注意:一定要区分路径格式

实现代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package
com.util;
 
import
java.io.FileInputStream;
import
java.io.FileNotFoundException;
import
java.io.IOException;
import
java.io.InputStream;
import
java.util.Properties;
import
java.util.PropertyResourceBundle;
import
java.util.ResourceBundle;
 
public
class
PropertiesUtil {
  
private
static
String basePath =
"src/prop.properties"
;
  
private
static
String name =
""
;
  
private
static
String nickname =
""
;
  
private
static
String password =
""
;
 
  
/**
   
* 一、 使用java.util.Properties类的load(InputStream in)方法加载properties文件
   
*
   
*/
  
public
static
String getName1() {
    
try
{
      
Properties prop =
new
Properties();
      
InputStream is =
new
FileInputStream(basePath);
      
prop.load(is);
      
name = prop.getProperty(
"username"
);
    
}
catch
(FileNotFoundException e) {
      
e.printStackTrace();
    
}
catch
(IOException e) {
      
e.printStackTrace();
    
}
    
return
name;
  
}
 
  
/**
   
* 二、 使用class变量的getResourceAsStream()方法
   
* 注意:getResourceAsStream()读取路径是与本类的同一包下
   
*
   
*/
  
public
static
String getName2() {
    
Properties prop =
new
Properties();
    
InputStream is = PropertiesUtil.
class
        
.getResourceAsStream(
"/com/util/prop.properties"
);
    
try
{
      
prop.load(is);
      
name = prop.getProperty(
"username"
);
    
}
catch
(IOException e) {
      
e.printStackTrace();
    
}
    
return
name;
  
}
 
  
/**
   
* 三、
   
* 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
   
* getResourceAsStream(name)方法的参数必须是包路径+文件名+.后缀 否则会报空指针异常
   
*
   
*/
  
public
static
String getName3() {
    
Properties prop =
new
Properties();
    
InputStream is = PropertiesUtil.
class
.getClassLoader()
        
.getResourceAsStream(
"com/util/prop.properties"
);
    
try
{
      
prop.load(is);
 
    
}
catch
(IOException e) {
      
e.printStackTrace();
    
}
    
return
name;
  
}
 
  
/**
   
* 四、 使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
   
* getSystemResourceAsStream()方法的参数格式也是有固定要求的
   
*
   
*/
  
public
static
String getName4() {
    
Properties prop =
new
Properties();
    
InputStream is = ClassLoader
        
.getSystemResourceAsStream(
"com/util/prop.properties"
);
    
try
{
      
prop.load(is);
      
name = prop.getProperty(
"username"
);
    
}
catch
(IOException e) {
      
e.printStackTrace();
    
}
    
return
name;
  
}
 
  
/**
   
* 五、 使用java.util.ResourceBundle类的getBundle()方法
   
* 注意:这个getBundle()方法的参数只能写成包路径+properties文件名,否则将抛异常
   
*
   
*/
  
public
static
String getName5() {
    
ResourceBundle rb = ResourceBundle.getBundle(
"com/util/prop"
);
    
password = rb.getString(
"password"
);
    
return
password;
  
}
 
  
/**
   
* 六、 使用java.util.PropertyResourceBundle类的构造函数
   
*
   
*/
  
public
static
String getName6() {
    
try
{
      
InputStream is =
new
FileInputStream(basePath);
      
ResourceBundle rb =
new
PropertyResourceBundle(is);
      
nickname = rb.getString(
"nickname"
);
    
}
catch
(FileNotFoundException e) {
      
e.printStackTrace();
    
}
catch
(IOException e) {
      
e.printStackTrace();
    
}
 
    
return
nickname;
  
}
 
  
/**
   
* 测试
   
*
   
*/
  
public
static
void
main(String[] args) {
    
System.out.println(
"name1:"
+ PropertiesUtil.getName1());
    
System.out.println(
"name2:"
+ PropertiesUtil.getName2());
    
System.out.println(
"name3:"
+ PropertiesUtil.getName3());
    
System.out.println(
"name4:"
+ PropertiesUtil.getName4());
    
System.out.println(
"password:"
+ PropertiesUtil.getName5());
    
System.out.println(
"nickname:"
+ PropertiesUtil.getName6());
  
}
}

 

转载于:https://www.cnblogs.com/weixupeng/p/8707505.html

你可能感兴趣的文章
underscore.js学习笔记
查看>>
windows下常用命令
查看>>
1.5编程基础之循环控制_29:数字反转
查看>>
组策略 之 设备安装设置
查看>>
人工智能还能干这些?这8种AI应用你可能意想不到
查看>>
实现Hyper-V 虚拟机在不同架构的处理器间迁移
查看>>
简单使用saltstack
查看>>
针对web服务器容灾自动切换方案
查看>>
突破媒体转码效率壁垒 阿里云首推倍速转码
查看>>
容器存储中那些潜在的挑战和机遇
查看>>
R语言的三种聚类方法
查看>>
深入理解Python中的ThreadLocal变量(上)
查看>>
如果一切即服务,为什么需要数据中心?
查看>>
《游戏开发物理学(第2版)》一导读
查看>>
Erlang简史(翻译)
查看>>
深入实践Spring Boot2.4.2 节点和关系实体建模
查看>>
10个巨大的科学难题需要大数据解决方案
查看>>
Setting Up a Kerberos server (with Debian/Ubuntu)
查看>>
用 ThreadLocal 管理用户session
查看>>
setprecision后是要四舍五入吗?
查看>>