黑马程序员技术交流社区
标题:
【石家庄校区】Properties 类的概述及与IO流的使用
[打印本页]
作者:
水煮牛蛙
时间:
2018-4-23 15:39
标题:
【石家庄校区】Properties 类的概述及与IO流的使用
本帖最后由 小石姐姐 于 2018-4-25 16:41 编辑
Properties 类的概述及与IO流的使用
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/*
* Properties类 (又叫属性列表): 是一个双列集合
* 1. 表示了一个持久的属性集
* 2.该类没有泛型,<K,Y>键和值都是String类型
* 3.实现了Map接口,继承与Hashtable<K,Y>
*
* Hashtable 与 HashMap的区别:
* Hashtable : 是同步的,效率比较低,安全 产生于JDK1.0
* HashMap : 是非同步的,效率比较高,不安全 产生于JDK1.2
*
* 构造方法:
* Properties();
*
* Properties类的特有方法:
* String getProperty(String key,String defaultValue);
* //当不存在指定的键时返回默认值 defaultValue
* SetProperty(String key,String value)
* //调用Hashtable 的put方法
*
*/
public class properties_概述 {
public static void main(String[] args) {
//创建属性列表
Properties prop = new Properties();
//添加映射关系
prop.put("pingguo", "15");
prop.put("xiangjiao", "20");
prop.put("juzi", "12");
//遍历属性列表
// 1
//获取所有的key,通过key获取value
Set<Object> keys = prop.keySet();
for(Object key : keys){
Object value = prop.get(key);
//因为上边添加数据的时候使用的是Map集合的方法,没有加泛型,因此需要通过Object对象接受
System.out.println(key+"="+value);
}
/*Output:
juzi=12
xiangjiao=20
pingguo=15
*///~
System.out.println("--------------");
// 2
//获取映射关系对象
Set<Map.Entry<Object,Object>> entrys = prop.entrySet();
for(Map.Entry<Object, Object>entry: entrys){
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key+""+value);
}
}
}
----------------------
>>>>>>> Properties 和 IO流 结合的功能 <<<<<<<<<<<
package com.jobday10;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
/*
* Properties和IO流结合的功能:
* void list(PrintWriter out)//写入文件
* void load(Reader reader)//获取文件中的K,V信息
* void store(Writer writer,String comments);//写入文件,同时可以在文件中加入标题,也可以为null
*
* list()和store()方法的区别:
* list:只能将列表信息写入文件,且必须是打印流
* store:可以使用字节流,字符流进行写入文件,且可以设置标题.
* 也可以 将comments设置为null(设置后文本不显示标题,只显示一个时间)
*/
public class Properties与IO流的配合使用 {
public static void main(String[] args) throws IOException {
//proper输入流方法();
//load_读取文件方法();
//创建属性列表对象
Properties prop = new Properties();
//添加映射关系
prop.setProperty("qq01","pingguo");
prop.setProperty("qq02","xiangjiao");
prop.setProperty("qq03","juzi");
//void store(Writer writer, String comments)
//创建输出流对象
FileWriter fw = new FileWriter("e.txt");
prop.store(fw,"hello");
//释放资源
fw.close();
//输出到文件中的数据格式:
/*Output:
#hello
#Sat Apr 14 15:51:10 CST 2018
qq03=juzi
qq02=xiangjiao
qq01=pingguo
*///~
}
private static void load_读取文件方法() throws FileNotFoundException, IOException {
//创建属性列表对象
Properties prop = new Properties();
//创建一个输入流对象
FileReader fr = new FileReader("d.txt");
//void load(Reader reader)
prop.load(fr);
fr.close();
//输出
System.out.println(prop);
/* Output:
{--=listing properties --, qq03=juzi, qq02=xiangjiao, qq01=pingguo}
*///~
}
//将列表的K,V信息写入文件 void list(PrintWriter out) 的使用
private static void proper输入流方法() throws FileNotFoundException {
//创建属性列表对象
Properties prop = new Properties();
//添加映射关系
prop.setProperty("qq01","pingguo");
prop.setProperty("qq02","xiangjiao");
prop.setProperty("qq03","juzi");
//创建打印流对象
PrintWriter out = new PrintWriter("d.txt");
//void list(PrintWriter out)
prop.list(out);
//释放资源
out.close();
//---写入到文件中的内容格式---
/*Output:
-- listing properties --
qq03=juzi
qq02=xiangjiao
qq01=pingguo
*///~
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2