|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。在Java中猎取体系属性
年夜庆油田无限义务公司苏洋
01-5-22上午11:12:51
--------------------------------------------------------------------------------
Java言语以其面向对象、跨平台、可移植性好、平安性初等长处,遭到浩瀚编程职员的喜爱,愈来愈多的人将其作为使用软件开辟言语的首选。
在Java使用程序运转时,出格是必要在跨平台事情情况下运转时,必要断定操纵体系范例、用户JDK版本和用户事情目次等随事情平台变更的信息,来包管程序准确运转。一样平常情形下,能够使用JDK供应的体系属性类(Properties)中的办法,疾速地猎取事情情况信息。别的,程序开辟职员还能够界说与使用程序相干的体系属性文件,在用户程序实行过程当中静态地加载程序员界说的属性文件来把持程序运转。
本文经由过程对体系属性类的剖析,分离实践例子先容怎样界说体系属性文件,并会商平安战略文件的界说。
属性类
JavaProperties类的承继干系以下:
java.lang.Object
+--java.util.Dictionary
+--java.util.Hashtable
+--java.util.Properties
在使用程序入手下手实行时,程序起首读取体系的默许属性。假如界说了用户属性文件,则使用程序加载该属性文件。程序运转过程当中能够依据实行情形静态地修正属性界说,并在程序停止运转前,保留属性文件。
猎取属性的办法:
●contains(Objectvalue)、containsKey(Objectkey):假如给定的参数或属性关头字在属性表中有界说,该办法前往True,不然前往False;
●getProperty(Stringkey)、getProperty(Stringkey,Stringdefault):依据给定的属性关头字猎取关头字值;
●list(PrintStreams)、list(PrintWriterw):在输入流中输入属性表内容;
●size():前往以后属性表中界说的属性关头字个数。
设置属性的办法:
●put(Objectkey,Objectvalue):向属性表中追加属性关头字和关头字的值;
●remove(Objectkey):附属性表中删除关头字。
猎取体系属性
体系属性是指与用户程序相干的操纵体系设置信息和软件信息。一般与用户程序相干的属性关头字包含:
●file.separator:文件分开符,Windows情况下为“",Unix情况下为“/”;
●user.home:用户主目次;
●java.home:Java及时运转情况的安装目次;
●java.ext.dirs:JDK的安装目次;
●os.name:操纵体系称号;
●user.name:用户登录称号;
●os.version:操纵体系版本;
●path.separator:以后操纵体系的路径分开符;
●user.dir:以后用户程序地点目次。
上面分离例子申明猎取体系属性的办法。
/*getSystemProperties.java*/
importjava.util.Properties;
publicclassgetSystemProperties
{
publicstaticvoidmain(Stringargs[])
{
//经由过程取得体系属性机关属性类prop
Propertiesprop=newProperties(
System.getProperties());
//在尺度输入中输入体系属性的内容
prop.list(System.out);
}
//依据猎取的体系属性断定程序实行流程
……
}
上述程序实行后,在Windows情况中发生相似以下的输入:
user.home=C:WIN95
java.home=D:JDK1.2JRE
java.ext.dirs=D:JDK1.2
os.name=Windows95
user.name=Office
java.vm.name=ClassicVM
os.version=4.10
path.separator=;
file.separator=
user.dir=D:JavaTest
属性文件的操纵办法
Java程序开辟职员能够经由过程界说属性文件来设置程序运转的参数。属性文件是程序内部文件,在使用程序初始运转时,能够经由过程读取属性文件来猎取有关程序运转的参数。比方,在程序运转时必要在程序内部把持程序的实行流程,这时候能够经由过程界说属性文件的办法到达目标。上面分离例子申明属性文件的操纵办法:
/*PropertyFile.java*/
//引进相干类
importjava.io.*;
importjava.util.Properties;
publicclassPropertyFile
{
//界说文件输出和输入流
staticFileInputStreamfis;
staticFileOutputStreamfos;
publicstaticvoidmain(Stringargs[])
{
//天生新的属性对象
Propertiesprop=newProperties();
try
{
//天生文件输出和输入流,输出流指向用户已界说的属性文件,输入流指向由使用程序新界说的属性文件
fis=newFileInputStream
(“firstProp.txt”);
fos=newFileOutputStream
(“secondProp.txt”);
}
catch(FileNotFoundExceptione)
{
System.out.println(“Cannotcreatethefilestream”);
}
try
{
//从输出文件加载体系属性
prop.load(fis);
//依据程序实行情形变动属性关头字的值
prop.put(“Switch”,“1”);
//输入新属性文件secondProp.txt
prop.save(fos,“--anewpropertiesfile-”);
}
catch(IOExceptione)
{
System.out.println(“Exceptioninrepleacethekeyword”);
}
}
}
在程序实行之前,用户必需起首界说属性文件firstProp.txt,该文件内容以下:
Switch=0
Version=1.0
Directory=JavaTest
程序运转后,输入新的属性文件secondProp.txt,该文件内容以下(注重察看两个文件关头字Switch内容的区分):
#--anewpropertiesfile--
#SunMar1121:22:40CST2001
Switch=1
Version=1.0
Directory=JavaTest
从上例能够看出,经由过程JDK供应的属性类Properties能够便利地在程序内部对使用程序的实行流程举行把持,从而简化了编程难度,使程序流程可控性更好。
平安战略文件
Java供应的使用程序情况的平安战略,使得分歧的代码对体系资本具有分歧的会见允许。Java使用程序平安战略由Policy对象来表达,经由过程界说平安战略文件来完成。Java1.2的平安战略文件分为三级:体系平安战略文件、用户平安战略文件和缺省平安战略文件。当Java使用程序启动后,依照前后按次加载平安战略内容。上面分离典范的平安战略文件内容对平安战略文件的界说举行申明:
grant
{
//对体系和用户目次设置“读”的权限
permissionjava.util.PropertyPermission“user.dir”,
“read”;
permissionjava.util.PropertyPermission“user.home”,“read”;
permissionjava.util.PropertyPermission“java.home”,“read”;
permissionjava.util.PropertyPermission“java.class.
path”,“read”;
permissionjava.util.PropertyPermission“user.name”,“read”;
//其他平安战略内容
};
上述平安战略文件界说了使用程序对用户目次、用户登录目次、JDK安装目次、用户称号等体系内容具有读的权限。
(网页编纂:徐朝阳)
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。 |
|