java.util.Properties类 关于读取和写入的说明和测试

java.util.Properties

*public class Properties extends Hashtable<Object,Object>
*Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。
*Properties集合是一个唯一和IO流相结合的集合
*可以使用Properties集合中的store方法,把集合中的临时数据持久化写入到硬盘中
*可以使用Properties集合中的load方法,把硬盘中的文件(键值对)放到集合中使用
*属性列表中的每个键及其对应的值都是一个字符串。
*Properties集合是一个双列集合,里面key和value默认都是字符串

使用Properties存储数据,遍历出Properties中的数据

  • Properties中一些操作字符串持有的方法:
    * String getProperty(String key) 使用此属性列表中指定的键搜索属性。相当于 Hashtable 中的 get(key) 方法
    * Object setProperty(String key, String value) 调用 Hashtable 方法 put ,将参数对应的键值对存放到Properties对象中。
    * Set<String> stringPropertyNames() 返回Properties对象的键集(即所有的key组成的集合),其中该键及其对应的值是字符串。此方法相当于Map中的keyset方法

测试例程:

	private static void text1() {
		//创建properties对象
		Properties prop = new Properties();
		//使用setProperty(String key, String value) 往Properties中添加数据
		prop.setProperty("大风", "166");
		prop.setProperty("货为", "176");
		prop.setProperty("万男", "188");
		//使用stringPropertyNames方法将集合中的所有键(key)取出放到一个Set中
		Set<String> set = prop.stringPropertyNames();
		//遍历取出集合中的元素
		for(String string:set) {
			//使用getProperty方法取出元素
			String value = prop.getProperty(string);
			System.out.println(string+"__"+value);
		}  
	}

store方法

可以使用Properties集合中的store方法,把集合中的临时数据持久化写入到硬盘中

  • void store(OutputStream out, String comments)
  • void store(Writer writer, String comments)
    * 参数:
    ** OutputStream out:字节输入流, 不能写入中文
    ** Writer writer:字符输出流,可以写入中文
    ** String comments:注释,用来解释说明保存的文件是做什么用的,不能使用中文,会产生乱码,默认是Unicode编码,一般使用""(空字符串)或null。
    *使用步骤:
    **1.创建Properties集合对象,添加数据,
    **2 创建字符输出流/字节输出流,构造方法中绑定输出目的地
    **3使用Properties集合中的store方法,把集合中的临时数据持久化写入到硬盘中
    **4释放流资源

测试例程:

	private static void text2() throws IOException {
		Properties prop = new Properties();
		prop.setProperty("大风", "166");
		prop.setProperty("货为", "176");
		prop.setProperty("万男", "188");
		Writer writer= new FileWriter("demoResult.txt",true);//追加写入
		prop.store(writer, null);
		writer.close();
		
	}

load方法

  • void load(InputStream inStream)
  • void load(Reader reader)
    *参数:
    **InputStream inStream:字节输入流,不能使用中文
    **Reader reader:字符输入流,可以使用中文
    *使用步骤:
    **1 创建Properties对象
    **2 使用Properties中的load方法读取保存键值对的文件
    **3 遍历Properties集合
    *注意事项:
    **1.存储键值对的文件中,键与值的默认连接符为 " = " 或" "(空格) 或者其他符号
    **2存储键值对的文件中,可以使用 # 进行注释,被注释部分不会被读取
    **3存储键值对的文件中,键与值都是字符串,不再加引号

测试例程:

	private static void text3() throws IOException {
		//1 创建Properties对象
		Properties prop = new Properties();
		 Reader reader = new FileReader("PropertiesFile.txt");
		 //2 使用Properties中的load方法读取保存键值对的文件
		 prop.load(reader);
		//3 遍历Properties集合
		 Set<String> set = prop.stringPropertyNames();
		 for(String string :set) {
			 String value = prop.getProperty(string);
			 System.out.println(string+"____"+value);
		 }
		
	}
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页