package com.qianfeng.test;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
/*
* Properties:这是一个类,可以理解成一个Map集合。
* 存储的是属性,属性以键值对的形式存在。
* 键值对内部的键值必须是String,所以不需要泛型。
*
* 为什么要在这里讲Properties?
* 因为他的操作与流的关系非常密切。
*
* 优点:
* 1.以键值对的形式存值
* 2.内部封装了大量的方法,比如:load,stor,list等。方便操作。
*
*/
public class Demo10 {
public static void main(String[] args) throws IOException {
//1.基本的操作。
//function1();
//2.如何通过Properties获取系统的属性。
//function2();
//3.理解Properties的实际应用。
function3();
}
//1.基本的操作。
public static void function1(){
//创建Properties对象
Properties properties = new Properties();
//存值
properties.setProperty("01", "java");
properties.setProperty("02", "python");
properties.setProperty("01", "ok");
//取值
System.out.println(properties.getProperty("01"));
//获取所有的Key
Set<String> set = properties.stringPropertyNames();
//遍历
//第一种--增强for循环
for (String key : set) {
System.out.println("key:"+key+" value:"+properties.getProperty(key));
}
//第二种--迭代器
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
System.out.println("key:"+key+"= value:"+properties.getProperty(key));
}
//注意点:当key不存在的时候,返回的是默认值。
String string = properties.getProperty("03", "iOS");
System.out.println(string);
}
//2.如何通过Properties获取系统的属性。
public static void function2(){
Properties properties = System.getProperties();
//遍历属性集合
Set<String> set = properties.stringPropertyNames();
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
System.out.println("key:"+key+"= value:"+properties.getProperty(key));
}
//改变内部的值
properties.setProperty("user.language", "ch");
System.out.println(properties.getProperty("user.language"));
//重新获取一遍
//会先到内存中找属性集合的对象,如果有,直接使用;如果没有,会重新初始化一个新的对象,获取属性集合。
Properties properties1 = System.getProperties();
System.out.println(properties1.getProperty("user.language"));
//将内容打印到控制台--list
properties1.list(System.out);
}
//3.理解Properties的实际应用。
public static void function3() throws IOException{
//创建属性集合对象
Properties properties = new Properties();
//创建输入流
FileReader fileReader = new FileReader("temp2.txt");
//将temp2.txt的内容加载到属性集合对象中
properties.load(fileReader);
//打印到控制台
//要想打印的是正确的形式,必须保证txt文件是键值对的形式存在。
properties.list(System.out);
//更改内容
properties.setProperty("01", "bingbingbang");
//将内容重新写回磁盘--借助输出流
FileWriter fileWriter = new FileWriter("temp2.txt");
properties.store(fileWriter, "bingbingchoule");
fileReader.close();
fileWriter.close();
}
}
java之Properties类
最新推荐文章于 2022-04-02 14:36:03 发布