Java(五十八)双列集合Properties
Properties类的父类是treetable,他是一个双列集合。
Properties 类表示了一个持久的属性集。
Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
总得来说Properties还是一个集合类。我们还是老样子,先来学习他的构造方法,再来学习他的成员方法:
一:构造方法
public Properties()
public static void main(String[] args) {
Properties ss1 = new Properties();
System.out.println(ss1);
}
控制台输出:
{}
二:成员方法
1:put()加入数据
public static void main(String[] args) {
Properties ss1 = new Properties();
ss1.put("潇寒", "18");
ss1.put("camellia", "20");
System.out.println(ss1);
}
控制台输出:
{camellia=20, 潇寒=18}
2:get()获取数据
public static void main(String[] args) {
Properties ss1 = new Properties();
ss1.put("潇寒", "18");
ss1.put("camellia", "20");
System.out.println(ss1);
Object s1 = ss1.get("camellia");
System.out.println(s1);
}
控制台输出:
{camellia=20, 潇寒=18}
20
3:keySet()将集合的key放入一个集合中
public static void main(String[] args) {
Properties ss1 = new Properties();
ss1.put("潇寒", "18");
ss1.put("camellia", "20");
System.out.println(ss1);
Set<Object> s1 = ss1.keySet();
System.out.println(s1);
}
控制台输出:
{camellia=20, 潇寒=18}
[camellia, 潇寒]
我们来遍历输出一下集合的key-value吧。
public static void main(String[] args) {
Properties ss1 = new Properties();
ss1.put("潇寒", "18");
ss1.put("camellia", "20");
System.out.println(ss1);
Set<Object> setKey = ss1.keySet();
for (Object key : setKey) {
Object value = ss1.get(key);
System.out.println(key + "---" + value);
}
}
控制台输出:
{camellia=20, 潇寒=18}
camellia---20
潇寒---18
Properties特有方法:
1:public Object setProperty(String key,String value):等同于之前学习的put()
public static void main(String[] args) {
Properties ss1 = new Properties();
ss1.setProperty("潇寒", "18");
ss1.setProperty("camellia", "20");
System.out.println(ss1);
}
控制台输出:
{camellia=20, 潇寒=18}
2:public String getProperty(String key):等同于之前学习的get()
public static void main(String[] args) {
Properties ss1 = new Properties();
ss1.setProperty("潇寒", "18");
ss1.setProperty("camellia", "20");
System.out.println(ss1);
Object val = ss1.getProperty("camellia");
System.out.println(val);
}
控制台输出:
{camellia=20, 潇寒=18}
20
3:public Set<String> stringPropertyNames():等同于之前学习的keySet()
public static void main(String[] args) {
Properties ss1 = new Properties();
ss1.setProperty("潇寒", "18");
ss1.setProperty("camellia", "20");
System.out.println(ss1);
Object val = ss1.stringPropertyNames();
System.out.println(val);
}
控制台输出:
{camellia=20, 潇寒=18}
[camellia, 潇寒]
4:public void store(OutputStream out,String comments):将集合中的数据存储到指定的文件中
这个第一个参数是字节流对象。
public static void main(String[] args) throws Exception {
Properties ss1 = new Properties();
ss1.setProperty("潇寒", "18");
ss1.setProperty("camellia", "20");
ss1.store(new FileOutputStream("aaa.txt"), "字节流写入");
// ss1.store(new FileWriter("aaa.txt"), "");
System.out.println("写入成功!");
}
5:public void store(Writer writer,String comments):将集合中的数据存储到指定的文件中
同上,只是这个是字符流的
6:*public void load(InputStream inStream):将文件中的数据加载到集合中(重点)
这个第一个参数是字节流对象。
public static void main(String[] args) throws Exception {
Properties ss1 = new Properties();
ss1.setProperty("潇寒", "18");
ss1.setProperty("camellia", "20");
ss1.store(new FileOutputStream("aaa.txt"), "字节流写入");
// ss1.store(new FileWriter("aaa.txt"), "");
System.out.println("写入成功!");
// ==========================================================
// 定义一个新的结合来存储读取的数据
Properties res = new Properties();
res.load(new FileInputStream("aaa.txt"));
System.out.println(res);
}
控制台输出:
写入成功!
{camellia=20, 潇寒=18}
7:*public void load(Reader reader):将文件中的数据加载到集合中(重点)
同上,只是这个是字符流的
以上大概就是双列集合Properties的基本使用。
有好的建议,请在下方输入你的评论。