- 浏览: 112356 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
SSB4455:
嗯 应该是这样
java线程学习之Thread.sleep() 和 Thread.yield() 区别 -
wishlee:
不详细啊
Java中23种设计模式详解 -
Vin-G:
正在学习,我想修改成:在主屏中不能长按和拖拉,不知道能不能实现 ...
android2.2源码在eclipse中的配置与分析 -
star_887012:
qq16881699 写道LZ的文章就是海量数据。。。。
常见的海量数据处理方法 -
I清晰:
看来头疼啊
常见的海量数据处理方法
Java语言以其面向对象、跨平台、可移植性好、安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选。
在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型、用户JDK版本和用户工作目录等随工作平台变化的信息,来保证程序正确运行。一般情况下,可以利用JDK提供的系统属性类(Properties)中的方法,快速地获取工作环境信息。另外,程序开发人员还可以定义与应用程序相关的系统属性文件,在用户程序执行过程中动态地加载程序员定义的属性文件来控制程序运行。
本文通过对系统属性类的分析,结合实际例子介绍如何定义系统属性文件,并讨论安全策略文件的定义。
属性类 Java Properties类的继承关系如下:
java.lang.Object
+--java.util.Dictionary
+--java.util.Hashtable
+--java.util.Properties
在应用程序开始执行时,程序首先读取系统的默认属性。如果定义了用户属性文件,则应用程序加载该属性文件。程序运行过程中可以根据执行情况动态地修改属性定义,并在程序结束运行前,保存属性文件。
获取属性的方法:
●contains(Object value)、containsKey(Object key):如果给定的参数或属性关键字在属性表中有定义,该方法返回True,否则返回False;
●getProperty(String key)、getProperty(String key, String default):根据给定的属性关键字获取关键字值;
●list(PrintStream s)、list(PrintWriter w): 在输出流中输出属性表内容;
●size():返回当前属性表中定义的属性关键字个数。
设置属性的方法:
●put(Object key, Object value) :向属性表中追加属性关键字和关键字的值;
●remove(Object key) :从属性表中删除关键字。
获取系统属性
系统属性是指与用户程序相关的操作系统配置信息以及软件信息。通常与用户程序相关的属性关键字包括:
●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*/
import java.util.Properties;
public class getSystemProperties
{
public static void main(String args[])
{
//通过获得系统属性构造属性类 prop
Properties prop = new Properties(
System.getProperties() );
//在标准输出中输出系统属性的内容
prop.list(System.out);
}
//根据获取的系统属性确定程序执行流程
……
}
上述程序执行后,在Windows环境中产生类似如下的输出:
user.home=C:\WIN95
java.home=D:\JDK1.2\JRE
java.ext.dirs=D:\JDK1.2
os.name=Windows 95
user.name=Office
java.vm.name=Classic VM
os.version=4.10
path.separator=;
file.separator=\
user.dir=D:\JavaTest
属性文件的操作方法
Java程序开发人员可以通过定义属性文件来设置程序运行的参数。属性文件是程序外部文件,在应用程序初始运行时,可以通过读取属性文件来获取有关程序运行的参数。例如,在程序运行时需要在程序外部控制程序的执行流程,这时可以通过定义属性文件的方法达到目的。下面结合例子说明属性文件的操作方法:
/*PropertyFile.java*/
//引入相关类
import java.io.*;
import java.util.Properties;
public class PropertyFile
{
//定义文件输入和输出流
static FileInputStream fis;
static FileOutputStream fos;
public static void main(String args[])
{
//生成新的属性对象
Properties prop = new Properties();
try
{
//生成文件输入和输出流,输入流指向用户已经定义的属性文件,输出流指向由应用程序新定义的属性文件
fis = new FileInputStream
(“firstProp.txt”);
fos = new FileOutputStream
(“secondProp.txt”);
}
catch(FileNotFoundException e)
{
System.out.println(“Cannot create the file stream”);
}
try
{
//从输入文件加载系统属性
prop.load(fis);
//根据程序执行情况更改属性关键字的值
prop.put(“Switch”,“1”);
//输出新属性文件secondProp.txt
prop .save ( fos ,“-- a new properties file-”);
}
catch(IOException e)
{
System.out.println(“Exception in repleace the keyword”);
}
}
}
在程序执行之前,用户必须首先定义属性文件firstProp.txt,该文件内容如下:
Switch= 0
Version= 1.0
Directory= JavaTest
程序运行后,输出新的属性文件secondProp.txt,该文件内容如下(注意观察两个文件关键字Switch内容的区别):
#--a new properties file--
#Sun Mar 11 21:22:40 CST 2001
Switch= 1
Version= 1.0
Directory= JavaTest
从上例可以看出,通过JDK提供的属性类Properties可以方便地在程序外部对应用程序的执行流程进行控制,从而简化了编程难度,使程序流程可控性更好。
安全策略文件
Java提供的应用程序环境的安全策略,使得不同的代码对系统资源拥有不同的访问许可。Java应用程序安全策略由Policy对象来表达,通过定义安全策略文件来实现。Java 1.2的安全策略文件分为三级:系统安全策略文件、用户安全策略文件和缺省安全策略文件。当Java应用程序启动后,按照先后顺序加载安全策略内容。下面结合典型的安全策略文件内容对安全策略文件的定义进行说明:
grant
{
//对系统和用户目录设置“读”的权限
permission java.util.PropertyPermission “user.dir”,
“read”;
permission java.util.PropertyPermission “user.home”,“read”;
permission java.util.PropertyPermission “java.home”,“read”;
permission java.util.PropertyPermission “java.class.
path”,“read”;
permission java.util.PropertyPermission “user.name”,“read”;
//其他安全策略内容
};
上述安全策略文件定义了应用程序对用户目录、用户登录目录、JDK安装目录、用户名称等系统内容具有读的权限。
在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型、用户JDK版本和用户工作目录等随工作平台变化的信息,来保证程序正确运行。一般情况下,可以利用JDK提供的系统属性类(Properties)中的方法,快速地获取工作环境信息。另外,程序开发人员还可以定义与应用程序相关的系统属性文件,在用户程序执行过程中动态地加载程序员定义的属性文件来控制程序运行。
本文通过对系统属性类的分析,结合实际例子介绍如何定义系统属性文件,并讨论安全策略文件的定义。
属性类 Java Properties类的继承关系如下:
java.lang.Object
+--java.util.Dictionary
+--java.util.Hashtable
+--java.util.Properties
在应用程序开始执行时,程序首先读取系统的默认属性。如果定义了用户属性文件,则应用程序加载该属性文件。程序运行过程中可以根据执行情况动态地修改属性定义,并在程序结束运行前,保存属性文件。
获取属性的方法:
●contains(Object value)、containsKey(Object key):如果给定的参数或属性关键字在属性表中有定义,该方法返回True,否则返回False;
●getProperty(String key)、getProperty(String key, String default):根据给定的属性关键字获取关键字值;
●list(PrintStream s)、list(PrintWriter w): 在输出流中输出属性表内容;
●size():返回当前属性表中定义的属性关键字个数。
设置属性的方法:
●put(Object key, Object value) :向属性表中追加属性关键字和关键字的值;
●remove(Object key) :从属性表中删除关键字。
获取系统属性
系统属性是指与用户程序相关的操作系统配置信息以及软件信息。通常与用户程序相关的属性关键字包括:
●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*/
import java.util.Properties;
public class getSystemProperties
{
public static void main(String args[])
{
//通过获得系统属性构造属性类 prop
Properties prop = new Properties(
System.getProperties() );
//在标准输出中输出系统属性的内容
prop.list(System.out);
}
//根据获取的系统属性确定程序执行流程
……
}
上述程序执行后,在Windows环境中产生类似如下的输出:
user.home=C:\WIN95
java.home=D:\JDK1.2\JRE
java.ext.dirs=D:\JDK1.2
os.name=Windows 95
user.name=Office
java.vm.name=Classic VM
os.version=4.10
path.separator=;
file.separator=\
user.dir=D:\JavaTest
属性文件的操作方法
Java程序开发人员可以通过定义属性文件来设置程序运行的参数。属性文件是程序外部文件,在应用程序初始运行时,可以通过读取属性文件来获取有关程序运行的参数。例如,在程序运行时需要在程序外部控制程序的执行流程,这时可以通过定义属性文件的方法达到目的。下面结合例子说明属性文件的操作方法:
/*PropertyFile.java*/
//引入相关类
import java.io.*;
import java.util.Properties;
public class PropertyFile
{
//定义文件输入和输出流
static FileInputStream fis;
static FileOutputStream fos;
public static void main(String args[])
{
//生成新的属性对象
Properties prop = new Properties();
try
{
//生成文件输入和输出流,输入流指向用户已经定义的属性文件,输出流指向由应用程序新定义的属性文件
fis = new FileInputStream
(“firstProp.txt”);
fos = new FileOutputStream
(“secondProp.txt”);
}
catch(FileNotFoundException e)
{
System.out.println(“Cannot create the file stream”);
}
try
{
//从输入文件加载系统属性
prop.load(fis);
//根据程序执行情况更改属性关键字的值
prop.put(“Switch”,“1”);
//输出新属性文件secondProp.txt
prop .save ( fos ,“-- a new properties file-”);
}
catch(IOException e)
{
System.out.println(“Exception in repleace the keyword”);
}
}
}
在程序执行之前,用户必须首先定义属性文件firstProp.txt,该文件内容如下:
Switch= 0
Version= 1.0
Directory= JavaTest
程序运行后,输出新的属性文件secondProp.txt,该文件内容如下(注意观察两个文件关键字Switch内容的区别):
#--a new properties file--
#Sun Mar 11 21:22:40 CST 2001
Switch= 1
Version= 1.0
Directory= JavaTest
从上例可以看出,通过JDK提供的属性类Properties可以方便地在程序外部对应用程序的执行流程进行控制,从而简化了编程难度,使程序流程可控性更好。
安全策略文件
Java提供的应用程序环境的安全策略,使得不同的代码对系统资源拥有不同的访问许可。Java应用程序安全策略由Policy对象来表达,通过定义安全策略文件来实现。Java 1.2的安全策略文件分为三级:系统安全策略文件、用户安全策略文件和缺省安全策略文件。当Java应用程序启动后,按照先后顺序加载安全策略内容。下面结合典型的安全策略文件内容对安全策略文件的定义进行说明:
grant
{
//对系统和用户目录设置“读”的权限
permission java.util.PropertyPermission “user.dir”,
“read”;
permission java.util.PropertyPermission “user.home”,“read”;
permission java.util.PropertyPermission “java.home”,“read”;
permission java.util.PropertyPermission “java.class.
path”,“read”;
permission java.util.PropertyPermission “user.name”,“read”;
//其他安全策略内容
};
上述安全策略文件定义了应用程序对用户目录、用户登录目录、JDK安装目录、用户名称等系统内容具有读的权限。
发表评论
-
Java Map遍历速度最优解
2011-12-09 13:01 1596HashMap的遍历有两种常用的方法,那就是使用key ... -
LinkedHashSet源码带来的思考
2011-09-01 21:45 10651、LinkedHashSet具有可预知迭代顺序的Set接口的 ... -
移动互联网时代已经来临,天下将是谁的?谁能笑到最后?
2011-08-27 17:20 92880年代末90年代初,是通 ... -
JAVA连接各种数据库
2011-07-27 21:05 7631、Oracle8/8i/9i数据库(thin模式) ... -
java(多线程)实现高性能数据同步
2011-06-23 22:36 2431需要将生产环境上Infoxmix里的数据原封不动的Co ... -
分布式系统数据同步解决方案
2011-06-23 21:52 1721Web Service 现如今已经成为 SOA ... -
常见的海量数据处理方法
2011-06-22 20:40 23891. 给定a、b两个文件, ... -
中文繁体和简体相互转换tranditional.txt文件
2011-06-13 10:35 2625啊阿埃挨哎唉哀皚癌藹 ... -
中文繁体和简体相互转换simplified.txt文件
2011-06-13 10:34 2956啊阿埃挨哎唉哀皑癌蔼 ... -
词性标注程序探讨
2011-03-07 20:39 1073程序设计主要分为五个部分,即词频统计和词性符号 ... -
初探Java 7异常处理功能增强
2011-03-07 20:35 801Java异常处理语法是指是Java开发者最为头疼的事情,也是 ... -
Java中堆内存与栈内存分配浅析
2011-03-07 20:30 778原文出处:http://soft.chin ... -
Unable to read TLD “META-INF/c.tld” from JAR file
2010-11-20 23:16 1494Unable to read TLD “META-INF/ ... -
Java NIO与IO的区别和比较
2010-10-29 17:37 947Java NIO与IO的区别和比较 导读 J2SE1. ... -
java nio 开发实例
2010-10-29 17:36 1407java nio 开发实例 ... -
全面总结java操作符
2010-10-21 11:13 1307java操作符共分为 ... -
详细解说关于Java.io的使用
2010-09-30 08:50 908Java的核心库java.io提供了全面的IO接口,包 ... -
Java线程学习笔记之Executor
2010-09-14 15:37 902Java线程学习笔记之Executor 并发编程的一种 ... -
java线程学习之Thread.sleep() 和 Thread.yield() 区别
2010-09-14 15:14 3524Thread.sleep() 和 Thread.yield() ... -
迅雷最新(2010.8.19)面试试题
2010-08-20 08:30 1048昨天去了深圳迅雷 ...
相关推荐
在java中获取系统属性的方法与代码片段
在Java中获取系统属性
主要介绍了详解Java获取环境变量及系统属性的方法,讲解了System.getEnv()和System.getProperties()这两个核心方法的使用,需要的朋友可以参考下
Java窗口程序:获取目录中的文件属性信息,得到文件的可读属性、可写属性、是否是隐藏文件、是否是只读文件、以及文件的最后修改日期和文件长度(如果是目录,则为0),自动判断获取属性的对象是目录还是文件,在信息...
安装在不同操作系统的Java虚拟机负责着Java程序与操作系统之间的工作,因此每个Java虚拟机的系统环境属性是不同的,我们可以通过访问Java虚拟机的系统属性来获知一些关于当前操作系统的一些基本信息,这些信息的价值...
java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供...
读取系统信息,jvm信息、网络信息等相关信息的java源码示意例子,仅供参考
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
配置管理系统提供系统参数配置管理,例如数据库的配置信息等,配置参数修改以后可以实时推送到客户端(基于netty4), 方便系统动态修改运行参数。 可以建多个项目,每个...支持php项目从superdiamond中获取配置参数。
shp文件:地理信息系统,也被称作GIS,它主要的扩展类型是SHAPEFILE (.SHP),一个包含了矢量地理空间数据的流行文件格式,描述了几何形态,点,线和多边形,每一个都有他们各自的属性。 shape文件由ESRI开发,一个...
java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
DumpMethods.java 使用反射机制来获取类中的方法 getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors....
java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供...
整个系统是在NetBeans IDE中制作的。系统有MySQL数据库作为后端支持。该系统支持该系统所需的所有功能。 关于系统 该系统易于理解和操作。在这里,您必须输入预约客户的详细信息。之后,您可以将他们排队,直到轮到...