概述
java基础 ---- Properties集合
Properties集合的理解概述:
- java.util.Properties extends Hashtable<k,v> implements Map<k,v>,是一个双列集合,key和value默认都是字符串, 用来表示一个持久的属性集。
Properties集合的使用概述:
- Properties作为一个已经封装好的集合类,最直接的使用方法就是创建对象,调用方法。
Properties集合有一些操作字符串的特有方法:
-Object setProperty(String key, String value) 调用 Hashtable 的方法 put,保存一对属性。
-String getProperty(String key) 通过key找到value值,此方法相当于Map集合中的get(key)方法
-Set<String> stringPropertyNames() 返回此属性列表中的键集,其中该键及其对应值是字符串,此方法相当于Map集合中的keySet方法
Properties集合是一个唯一和IO流相结合的集合:
1.有store方法,把集合中的临时数据,持久化写入到硬盘中存储
-void store(OutputStream out, String comments)
-void store(Writer writer, String comments)
参数:
OutputStream out:字节输出流,不能写入中文
Writer writer:字符输出流,可以写中文
String comments:注释,用来解释说明保存的文件是做什么用的,不能使用中文,会产生乱码,默认是Unicode编码,一般使用""空字符串2.有load方法,把硬盘中保存的文件(键值对),读取到集合中使用
-void load(InputStream inStream) 通过字节输入流对象,可以事先将输入流对象关联到某文件上,这样就能够加载文本中的数据了
-void load(Reader reader)
参数:
InputStream inStream:字节输入流,不能读取含有中文的键值对
Reader reader:字符输入流,能读取含有中文的键值对
Properties集合的测试代码:
/**运行前提:
*1.IDEA提示下,导入相关jar包
*2.项目下有符合参数要求的文件,文件夹
*/
public class PropertiesTest {
public static void main(String[] args) throws IOException {
show1();
show2();
show3();
}
/**show1():使用Properties集合存储数据,遍历取出Properties集合中的数据
* 1.创建Properties集合对象
* 2.使用setProperty往集合中添加数据
* 3.使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中
* 4.遍历Set集合,取出Properties集合的每一个键
*/
private static void show1() {
//1.
Properties prop = new Properties();
//2.
prop.setProperty("AAA","1");
prop.setProperty("BBB","2");
prop.setProperty("CCC","3");
//3.
Set<String> set = prop.stringPropertyNames();
//4.
for (String key : set) {
//使用getProperty方法通过key获取value
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}
}
/**show2():
* 1.创建Properties集合对象
* 2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
* 3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
* 4.释放资源
*/
private static void show2() throws IOException {
//1.
Properties prop = new Properties();
prop.setProperty("AAA","1");
prop.setProperty("BBB","2");
prop.setProperty("CCC","3");
//2.
FileWriter fw = new FileWriter("MyTest\prop.txt");//此时项目文件架下出现新的文件MyTest\prop.txt
//prop.store(new FileOutputStream("MyTest\prop2.txt"),"");字节输出流不能含有中文
/*MyTest\prop.txt的内容
*#save data #存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取
*#Sun Aug 08 07:39:28 CST 2088
*AAA=1 #存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)
*BBB;2 #存储键值对的文件中,键与值默认都是字符串,不用再加引号
*CCC 3
*/
//3.
prop.store(fw,"save data");
//4.
fw.close();
}
/**show3():
* 1.创建Properties集合对象
* 2.使用Properties集合对象中的方法load读取保存键值对的文件
* 3.遍历Properties集合
*/
private static void show3() throws IOException {
//1.
Properties prop = new Properties();
//2.
prop.load(new FileReader("MyTest\prop.txt"));
//prop.load(new FileInputStream("MyTest\prop.txt")); 字节输入流不能含有中文
/*MyTest\prop.txt的内容
*#save data
*#Sun Aug 08 07:39:28 CST 2088
*AAA=1
*BBB=2
*CCC=3
*/
//3.
Set<String> set = prop.stringPropertyNames();
for (String key : set) {
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}
}
}
最后
以上就是超帅飞鸟为你收集整理的java基础 ---- Properties集合java基础 ---- Properties集合的全部内容,希望文章能够帮你解决java基础 ---- Properties集合java基础 ---- Properties集合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复