java学习之路(8)----属性类(Properties)及其方法的使用

文章目录

Properties 类

这两个方法我还不会用(后续学习后再补上):


void list(PrintStream streamOut)
 将属性列表输出到指定的输出流。

void list(PrintWriter streamOut)
将属性列表输出到指定的输出流。
  • roperties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串

  • Properties类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。

定义如下实例变量

  • 这个变量持有一个Properties对象相关的默认属性列表。
Properties defaults;

构造:

Properties()
Properties(Properties propDefault)

两种情况下,属性列表都为空

创建一个带有指定默认值的空属性列表。

在这种情况下,会出现2个属性列表,这个就是那个默认的属性列表了!如果找不到,会返回默认属性,如果没有默认属性就返回null


String getProperty(String key)
 //用指定的键在此属性列表中搜索属性。
String getProperty(String key, String defaultProperty)
//用指定的键在属性列表中搜索属性。
Object setProperty(String key, String value)
调用 Hashtable 的方法 put

以下代码为更好理解属性类方法的使用:

import java.util.*;
public class PropTest{
	
	public static void main(String[] args){
		
		Properties p = new Properties();
		String str;
		Set states;
		p.put("gyy1","qq");
		p.put("gyy2","ww");
		p.put("gyy3","ee");
		p.put("gyy4","tt");
		
		System.out.println(p);
		System.out.println(p.keySet());
		states = p.keySet();//集合
		Iterator itr = states.iterator();//集合的迭代器
		while(itr.hasNext()){
			
			str = (String)itr.next();
			
			System.out.println(str);
			System.out.println(p.getProperty(str));
			if("gyy1".equals(str)){
				System.out.println("---remove---");
				System.out.println(p.remove(str));
			}
			
			
			
		}
		System.out.println(p.toString());
		System.out.println("-------");
		String str2;
		str2 = p.getProperty("gyy5","yy");
		str = p.getProperty("gyy4","rr");
		/*方法将搜索具有此属性列表中指定键的属性值。
		*如果在属性列表中,默认属性列表及其默认值找到该键,递归,
		* 然后检查。如果未找到该属性的方法返回默认值参数。
		*/
		p.setProperty("gyy6","rr");
		System.out.println(str);//tt
		System.out.println(str2);//yy
		System.out.println(p);
		
		
	}
}

以下代码将属性类方法与File类结合进行文件的读取写入,并考虑了中文乱码,加入“utf-8”编码格式:

import java.util.*;
import java.io.*;
public class PropTest{
 
 public static void main(String[] args)throws IOException{
  
  Properties p = new Properties();
  String str;
  Set states;
  p.put("gyy1","qq");
  p.put("gyy2","ww");
  p.put("gyy3","ee");
  p.put("gyy4","tt");
  
  System.out.println(p);
  System.out.println(p.keySet());
  states = p.keySet();//集合
  Iterator itr = states.iterator();//集合的迭代器
  while(itr.hasNext()){
   
   str = (String)itr.next();
   
   System.out.println(str);
   System.out.println(p.getProperty(str));
   if("gyy1".equals(str)){
    System.out.println("---remove---");
    System.out.println(p.remove(str));
   }
   
   
   
  }
  System.out.println(p.toString());
  System.out.println("-------");
  String str2;
  str2 = p.getProperty("gyy5","yy");
  str = p.getProperty("gyy4","rr");
  /*方法将搜索具有此属性列表中指定键的属性值。
  *如果在属性列表中,默认属性列表及其默认值找到该键,
  *递归,然后检查。如果未找到该属性的方法返回默认值参数。
  */
  p.setProperty("gyy6","rr");
  System.out.println(str);//tt
  System.out.println(str2);//yy
  System.out.println(p);
  
  Enumeration e3;
  String str3;
  File f = new File("property.txt");//创建文件
  OutputStream  ff = new FileOutputStream(f);
  OutputStreamWriter w = new OutputStreamWriter(ff,"UTF-8");
  p.store(w,"jj");
  w.close();
  ff.close();
  Properties p2 = new Properties();
  InputStream ii = new FileInputStream("property.txt");
  InputStreamReader r = new InputStreamReader(ii,"UTF-8");
  p2.load(r);
  e3 = p2.propertyNames();
  System.out.println(p2);
  
  while(e3.hasMoreElements()){
   
   str3 =(String) e3.nextElement();
   
   System.out.println(str3+"="+p2.getProperty(str3)+", ");
   
   
  }
  System.out.println(p2.getProperty("gyy4"));
  r.close();
  ii.close();
  
  
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值