Java解析xxx.properties文件
user.properties文件:
#user 0
username.0=zhangsan
password.0=zs123
email.0=666666666@qq.com
#user 1
username.1=lisi
password.1=ls123
email.1=888888888@qq.com
package com.mdl.test.user;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import com.google.gson.Gson;
public class UserConfig {
public static List<User> getUser(){
try {
InputStream in = ClassLoader.getSystemResourceAsStream("user.properties");
Properties p = new Properties();
p.load(in);
Map<Integer,User> indexAndUserMap = new HashMap<>();
for (Entry<Object,Object> entry : p.entrySet()) {
String key = (String) entry.getKey();
String value = (String) entry.getValue();
//解析key对应的index
String[] keys = key.split("\\.");
Integer index = Integer.valueOf(keys[1]);
//先获取当前这个index的bean存不存在,
//不存在则新new一个,
//存在则获取到这个index的bean然后再赋值
//这样可避免不同的index的bean的赋值出现混淆
UserConfig.User user = indexAndUserMap.get(index);
if(user == null){
user = new UserConfig().new User();//new内部类与new外部类的写法不同
indexAndUserMap.put(index, user);
}
if(isUsername(key)){
user.setUsername(value);
}
else if(isPassword(key)){
user.setPassword(value);
}
else if(isEmail(key)){
user.setEmail(value);
}
}
Gson gs = new Gson();
String str = gs.toJson(indexAndUserMap);
System.out.println(str);
String str2 = gs.toJson(indexAndUserMap.values());
return new ArrayList<>(indexAndUserMap.values());//indexAndUserMap.values()直接返回k:v的v值
} catch (IOException e) {
throw new RuntimeException("配置文件加载异常");
}
}
private static boolean isUsername(String key){
if(key==null || key.isEmpty() || key.toLowerCase().indexOf("username")<0){
return false;
}
return true;
}
private static boolean isPassword(String key){
if(key==null || key.isEmpty() || key.toLowerCase().indexOf("password")<0){
return false;
}
return true;
}
private static boolean isEmail(String key){
if(key==null || key.isEmpty() || key.toLowerCase().indexOf("email")<0){
return false;
}
return true;
}
class User{
private String username;
private String password;
private String email;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
}