}catch(Exception e){//第一次有异常,正好设置COUNT值 settings.setProperty(\, String.valueOf(0)); }
settings.get(\);//从HASHTABLE读取的,返回的是OBJECT int c=Integer.parseInt(settings.getProperty(\))+1;//得到System.out.println(\运行次数是\+c);
//settings.put(\new Integer(c).toString());//将字符转换为settings.setProperty(\, new Integer(c).toString());//这个
的是字符串,转换为INT
整数,存储到文件中 方法更好
try{
settings.store(new FileOutputStream(\), \
run\);//保存到文件中 }catch(Exception e){ }
}
}
e.printStackTrace();
一般共享软件就是采用这种方法,这不过运行次数可能记录到注册表中了
System和Runtiome类:
JAVA不支持全局函数和变量,而是将一些与系统相关的函数和变量收集到system类中,其中的成员都是静态的,可以直接使用,如使用的输入输出。 System类:
---exit方法:退出系统的运行 ---currentTimeMIllis方法,返回自1970,1,1,o点0分0秒,以毫秒为单位,是一个LONG型,我们可以使用它检查一个程序运行的时间 如上面的程序我们可以加入
long starttime=System.currentTimeMillis(); ….
long endTime=System.currentTimeMillis() long totaltime=endtime-starttime;
import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties; public class Properties_File {
public static void main(String[] args) {
Properties settings=new Properties(); long starttime=System.currentTimeMillis(); try{
settings.load(new FileInputStream(\));//从文件中读取运}catch(Exception e){//第一次有异常,正好设置COUNT值
行次数
}
settings.setProperty(\, String.valueOf(0));
settings.get(\);//从HASHTABLE读取的,返回的是OBJECT int c=Integer.parseInt(settings.getProperty(\))+1;//得到System.out.println(\运行次数是\+c);
//settings.put(\new Integer(c).toString());//将字符转换为settings.setProperty(\, new Integer(c).toString());//这个
的是字符串,转换为INT
整数,存储到文件中 方法更好
try{
settings.store(new FileOutputStream(\), \
run\);//保存到文件中 }catch(Exception e){ }
}
}
long endtime=System.currentTimeMillis(); long totaltime=endtime-starttime; System.out.println(totaltime);
e.printStackTrace();
---JAVA虚拟机的系统属性,如何为其增加新的系统属性? 在dos下输入java就可以显示系统属性
getProperties和getProperties可以获得java虚拟机的属性
import java.util.Enumeration; import java.util.Properties;
public class Test_java_properties {
public static void main(String[] args) {
//System.setProperty(key, value)可以设置新建的属性和值 Properties sp=System.getProperties();//取出系统属性
Enumeration e=sp.propertyNames();//得到系统属性中的所有属性的名称,
Enumeration用于表示集合中元素的一种抽象机制 while(e.hasMoreElements()){
String key=(String)e.nextElement();
System.out.println(key+\+sp.getProperty(key));//sp.getProperty(
key)得到返回值 } }
}
runtime类:封装了JAVA命令本身启动的进程,即JAVA虚拟机,一个JAVA虚拟机对应一个RUNTIME进程,RUNTIME方法和SYSTEM很相近,不能通过NEW来创建RUNTIME,只能使用其中的静态方法
编程:在JAVA程序中启动一个windows记事本程序的运行实例,并在该运行实例中打开这个JAVA程序的源文件,启动记事本程序5秒中后关闭
import java.util.Enumeration; import java.util.Properties;
public class Test_java_properties {
public static void main(String[] args) {
//System.setProperty(key, value)可以设置新建的属性和值 Properties sp=System.getProperties();//取出系统属性
Enumeration e=sp.propertyNames();//得到系统属性中的所有属性的名称,
Enumeration用于表示集合中元素的一种抽象机制 while(e.hasMoreElements()){
String key=(String)e.nextElement();
System.out.println(key+\+sp.getProperty(key));//sp.getProperty(
key)得到返回值 }
try{
Process p=null;//这个类代表JAVA虚拟机启动的子进程 p=Runtime.getRuntime().exec(\
D:/workspace/java_training/src/base_express/Test_java_properties.java\); }
}
//getRuntime获得实例对象,exec(执行程序 所要执行的文件),注意路径和Thread.sleep(5000);//睡眠5秒 p.destroy();//关闭进程 }catch(Exception e1){
e1.printStackTrace();}
windows的书写相反\\---/
16、与日前和时间有关的类
最常用的Date、DateFormat和Calender
Date类用于表示日前和时间,不带参数的构造函数以当前时间来初始化,由于其没有考虑国际化,所以设计了两个新类DateFormat和Calender,其中Calender主要完成日前字段之间的相互操作,ADD方法可以增加天、年、小时,GET方法获取时间值,SET可以修改值,该类是一个抽象基类,需要通过GETINSTANCE静态方法来返回一个Calender类型,GREGORIANCALENDAR是Calender的唯一子类,GETINSTANCE返回的实际上就是GREGORIANCALENDAR类型 编程:计算距现在315时间的
import java.util.Calendar; public class Test_Calendar {
public static void main(String[] args) {
Calendar cl= Calendar.getInstance();//产生GREGORIANCALENDAR实例
对象
}
}
System.out.println(cl.get(Calendar.YEAR)+\+
cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);
//静态成员的调用两种方法Calendar.YEAR、cl.MONTH cl.add(cl.DAY_OF_YEAR, 315);
System.out.println(cl.get(Calendar.YEAR)+\+
cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);
Date类:
虽然Clendar几乎可以完全替代date类,但还有些地方要用DATE类,如程序中的参数就是Date类的话。java.text.DateFormat可以将一个DATE类中的日前用指定的格式输出,或将一种特定格式的日前字符串转换成一个DATE的实例对象,DateFormat是一个抽象类,完成具体任务时候,需要用其子类,java.text.SimpleDateFormat就是其子类,用于把DATE对象中的日前格式化本地字符串,或者是通过语义分析,将日前或时间特殊格式的字符串转换为日前对象,实际上就相当于定义了一个日前格式的表现模式 编程:2002-03-15转换为2002年3月15日
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test_Calendar {
public static void main(String[] args) {
Calendar cl= Calendar.getInstance();//产生GREGORIANCALENDAR实例System.out.println(cl.get(Calendar.YEAR)+\+
cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);
对象
//静态成员的调用两种方法Calendar.YEAR、cl.MONTH cl.add(cl.DAY_OF_YEAR, 315);
System.out.println(cl.get(Calendar.YEAR)+\+
cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);
//=====
SimpleDateFormat sdf1=new SimpleDateFormat(\);//参数
指明了转换的格式,可以参考JDK帮助,模式字符串