java读取和遍历properties文件并根据key进行排序
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.Map.Entry;
public class PropertiesUtils {
public static Map<String, String> getPropertiesFromFile(String fileName) {
try {
Map<String, String> propMap = new HashMap<String, String>();
InputStream is = PropertiesUtils.class.getResourceAsStream(fileName);
if (is != null) {
Properties props = new Properties();
props.load(is);
Set<Object> keyset = props.keySet();
for (Object object : keyset) {
String propValue = props.getProperty(object.toString()).toString();
propMap.put(object.toString(), propValue.toString());
}
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(propMap.entrySet());
//然后通过比较器来实现排序
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
//升序排序
public int compare(Entry<String, String> o1, Entry<String, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
propMap = new HashMap<String, String>();
for (Map.Entry<String, String> mapping : list) {
propMap.put(mapping.getKey(), mapping.getValue());
System.out.println(mapping.getKey() + " = " + mapping.getValue());
}
is.close();
}
return propMap;
}
catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
PropertiesUtils.getPropertiesFromFile("/PortalResource_zh_CN.properties");
}
}