Properties类的使用问题

weepping 2009-12-07 10:39:58
文件里有
username=root
password=root
index=1
username=zhangs
password=123456
index=2
username=lisi
password=123456
index=2

怎么用Properties读出来之后存到map中
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
MAP
darxin 2009-12-08
  • 打赏
  • 举报
回复
属性文件(.properties)中不能有相同的属性名!

楼主的属性文件中存在多个同名属性值,
用Properties类加载之后只能保存最后一个同名属性的值。

不能保存同名属性的多个值的原因在于Properties类的实现方式,
Properties类是用java.util.Hashtable实现的,
Hashtable中相同键值的属性值只能保存最后一个。
可以参考下面的代码

public static void main(String args[]) throws IOException {
Hashtable<String, String> table = new Hashtable<String, String>();
table.put("username", "root");
table.put("username", "zhangs");

Iterator<String> keyIterator = table.keySet().iterator();
while(keyIterator.hasNext()) {
String key = keyIterator.next();
System.out.println(key + "=" + table.get(key));
}
}

打印结果是
username=zhangs
huntor 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 smartcatiboy 的回复:]
Properties不是有map接口吗??
[/Quote]
java.lang.Object
extended by java.util.Dictionary
extended by java.util.Hashtable
extended by java.util.Properties

All Implemented Interfaces:
Cloneable, Map, Serializable
whut0802 2009-12-07
  • 打赏
  • 举报
回复
一楼的代码完成后,得到了每个 key对应的 value值,然后map.put(key,value)就可以啦
  • 打赏
  • 举报
回复
Properties 是 Hashtable 的子类,而 Hashtable 实现了 Map,因此 Properties 也就是个 Map,嘿嘿。
smartcatiboy 2009-12-07
  • 打赏
  • 举报
回复
Properties不是有map接口吗??
Aniao 2009-12-07
  • 打赏
  • 举报
回复
2楼对的
amdgaming 2009-12-07
  • 打赏
  • 举报
回复

//根据key读取value
public static String readValue(String filePath,String key) {
Properties props = new Properties();
try {
InputStream in = new BufferedInputStream (new FileInputStream(filePath));
props.load(in);
String value = props.getProperty (key);
System.out.println(key+value);
return value;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧