码迷,mamicode.com
首页 > 其他好文 > 详细

取出System的Properties内容的方法

时间:2015-05-10 09:55:51      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:iterator   hashtable   map   system   properties   

System的getProperties()方法返回Properties类型对象,其中Properties类属于Hashtable的子类,属于Map集合的一个子类对象,所以可以通过key和value取值。Properties的key和value实际上都是String类型的。这一点是其和Hashtable不同的地方。我们可以查看Properties.java得到这个信息——

    public synchronized Object setProperty(String key, String value) {
        return put(key, value);
    }


在取值的时候,有两种方法——

第一种是使用System的getProperties(String key)方法:

此时要定义key为String,而不能向上转型为Object型,因为System的getProperties(String key)方法要求传入的key必须是String类型的。

通过迭代器拿到key(定义为String类型!!!)之后我们就可以使用getProperties()方法得到String型的value。

第二种是Hashtable的get()方法:

get(Object key)方法并不强制要求key要为String,只要是Object类型即可。


下面是代码实现,在实现的时候我们第一种使用了迭代器,第二种没有使用迭代器,直接使用for循环遍历取值,纯属个人爱好,跟上面介绍的两种方法无关——

import java.util.Iterator;
import java.util.Properties;


public class SystemDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Properties prop = System.getProperties();	//Properties属于Hashtable的子类,可以通过key和value取值
		
		System.out.println("取出System的Properties内容的方法一:");
		
		Iterator it = prop.keySet().iterator();
		
		while(it.hasNext()){
			String key = (String)it.next();
			String value = prop.getProperty(key);	//static String	 getProperty(String key) 
			//getProperty只能通过String的key去获取value,因为System返回的Properties集合的key和value确实都是字符串
			System.out.println(key + "-----" + value.toString());
		}
		
		System.out.println("取出System的Properties内容的方法二:");
		
		for(Object obj : prop.keySet()){
			String value = (String)prop.get(obj);	//也可以直接用HashSet的get()方法取值,这个方法只要求key是Object型
			System.out.println(obj + "-----" + value.toString());
		}
	}

}
得到的是系统加载时的属性信息,每个人都不一样,我的结果如下——

取出System的Properties内容的方法一:
java.runtime.name-----Java(TM) SE Runtime Environment
sun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64
java.vm.version-----25.45-b02
java.vm.vendor-----Oracle Corporation
java.vendor.url-----http://java.oracle.com/
path.separator-----:
java.vm.name-----Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg-----sun.io
user.country-----US
sun.java.launcher-----SUN_STANDARD
sun.os.patch.level-----unknown
java.vm.specification.name-----Java Virtual Machine Specification
user.dir-----/home/lpp/Codes/JavaWorkSpace/Test
java.runtime.version-----1.8.0_45-b14
java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironment
java.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsed
os.arch-----amd64
java.io.tmpdir-----/tmp
line.separator-----

java.vm.specification.vendor-----Oracle Corporation
os.name-----Linux
sun.jnu.encoding-----UTF-8
java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.specification.name-----Java Platform API Specification
java.class.version-----52.0
sun.management.compiler-----HotSpot 64-Bit Tiered Compilers
os.version-----4.0.1-1-ARCH
user.home-----/home/lpp
user.timezone-----
java.awt.printerjob-----sun.print.PSPrinterJob
file.encoding-----UTF-8
java.specification.version-----1.8
java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/bin
user.name-----lpp
java.vm.specification.version-----1.8
sun.java.command-----SystemDemo
java.home-----/usr/lib/jvm/java-8-jdk/jre
sun.arch.data.model-----64
user.language-----en
java.specification.vendor-----Oracle Corporation
awt.toolkit-----sun.awt.X11.XToolkit
java.vm.info-----mixed mode
java.version-----1.8.0_45
java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path-----/usr/lib/jvm/java-8-jdk/jre/lib/resources.jar:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar:/usr/lib/jvm/java-8-jdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jsse.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jce.jar:/usr/lib/jvm/java-8-jdk/jre/lib/charsets.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jfr.jar:/usr/lib/jvm/java-8-jdk/jre/classes
java.vendor-----Oracle Corporation
file.separator-----/
java.vendor.url.bug-----http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding-----UnicodeLittle
sun.cpu.endian-----little
sun.cpu.isalist-----
取出System的Properties内容的方法二:
java.runtime.name-----Java(TM) SE Runtime Environment
sun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64
java.vm.version-----25.45-b02
java.vm.vendor-----Oracle Corporation
java.vendor.url-----http://java.oracle.com/
path.separator-----:
java.vm.name-----Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg-----sun.io
user.country-----US
sun.java.launcher-----SUN_STANDARD
sun.os.patch.level-----unknown
java.vm.specification.name-----Java Virtual Machine Specification
user.dir-----/home/lpp/Codes/JavaWorkSpace/Test
java.runtime.version-----1.8.0_45-b14
java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironment
java.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsed
os.arch-----amd64
java.io.tmpdir-----/tmp
line.separator-----

java.vm.specification.vendor-----Oracle Corporation
os.name-----Linux
sun.jnu.encoding-----UTF-8
java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.specification.name-----Java Platform API Specification
java.class.version-----52.0
sun.management.compiler-----HotSpot 64-Bit Tiered Compilers
os.version-----4.0.1-1-ARCH
user.home-----/home/lpp
user.timezone-----
java.awt.printerjob-----sun.print.PSPrinterJob
file.encoding-----UTF-8
java.specification.version-----1.8
java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/bin
user.name-----lpp
java.vm.specification.version-----1.8
sun.java.command-----SystemDemo
java.home-----/usr/lib/jvm/java-8-jdk/jre
sun.arch.data.model-----64
user.language-----en
java.specification.vendor-----Oracle Corporation
awt.toolkit-----sun.awt.X11.XToolkit
java.vm.info-----mixed mode
java.version-----1.8.0_45
java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path-----/usr/lib/jvm/java-8-jdk/jre/lib/resources.jar:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar:/usr/lib/jvm/java-8-jdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jsse.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jce.jar:/usr/lib/jvm/java-8-jdk/jre/lib/charsets.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jfr.jar:/usr/lib/jvm/java-8-jdk/jre/classes
java.vendor-----Oracle Corporation
file.separator-----/
java.vendor.url.bug-----http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding-----UnicodeLittle
sun.cpu.endian-----little
sun.cpu.isalist-----

取出System的Properties内容的方法

标签:iterator   hashtable   map   system   properties   

原文地址:http://blog.csdn.net/puppylpg/article/details/45603973

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!