JAVA学生培训 下载本文

SimpleDateFormat sdf2=new SimpleDateFormat(\年MM月dd日\);//

要转换为新的格式 try{ }

}

Date d=sdf1.parse(\);//从字符串中按格式提取后生存一个实例System.out.println(sdf2.format(d));//替换成模式格式 }catch(Exception e3){

e3.printStackTrace();}

对象

Timer与TimerTask 提供了schedule方法

schedule(执行指定代码,隔多少时间执行任务代码) schedule(执行指定代码,什么时间开始执行任务代码)

schedule(执行指定代码,隔多少时间执行任务代码,时间间隔) schedule(执行指定代码,什么时间开始执行任务代码,时间间隔)

TimerTask类实现了Runnable接口,要执行的任务由它里面的实现的run方法完成,如果要定期执行任务,run方法应避免长时间的循环,这样会出现上次任务没有结束,又开始本次任务的情况

编程:程序启动30秒后,自动启动windows的计算器 //Timer中的run方法 new Timer().schedule(new TimerTask(){ //new Timer()生成一个定时器对象,然后调用schedule方法,隔3秒后执行TimerTask中的run方法 //这里使用TimerTask的内置类,即是TimerTask的子类,在方法中启动window计算器程序 public void run(){ try{ Runtime.getRuntime().exec(\ }catch(Exception e4){e4.printStackTrace(); } } } , 3000); }

上面代码会出现线程不结束的情况,应该如下修改

//Timer中的run方法

class MyTimerTask extends TimerTask{

private Timer tm=null;

public MyTimerTask(Timer tm){

this.tm=tm; }

//new Timer(true)情况下是一个deamon线程,主程序结束后,启动的任务

还没有结束

//new Timer()生成一个定时器对象,然后调用schedule方法,隔3秒后执行//这里使用TimerTask的内置类,即是TimerTask的子类,在方法中启动

TimerTask中的run方法

window计算器程序 public void run(){

}

Timer tm=new Timer();

tm.schedule(new MyTimerTask(tm), 3000);

//tm创建一个线程,然后线

try{

Runtime.getRuntime().exec(\); }catch(Exception e4){e4.printStackTrace(); }

//结束任务代码 tm.cancel();

}

程运行MyTimerTask任务代码 }

17、Math类和Random

MATH类中包含了所有几何和三角运算的方法,都是静态的方法

RANDOM类是一个伪随机数,按照某种算法产生,一旦按照某初始值创建该对象,就得到一系列随机数,如果初始值相同,则系列相同,由于这个原因,使用当前的时间值来初始化RANDOM(没有参数),这样就不会产生相同的数据系列了

18、IO/输入输出

键盘被当作输入文件,显示器被当作输出文件,所有涉及输入输出的类都放到java.io包中。 File类

RandomAccessFile类 各种节点流类 字符编码

各种过滤流与包装类 IO类的相关应用

File类,是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容

File类定义了一些与平台无关的方法来操纵文件。如创建、删除、重命名、读写权限、修改时间等

JAVA中的目录被当作一种特殊的文件使用,FILE类的LIST方法可以返回目录中的所有子目录和文件名

在UNIX下的路径分隔符为(/),在DOS下的路径分隔符为(\\),JAVA可以正确处理UNIX和DOS的路径分隔符

编程:判断某个文件是否存在,存在则删除,不存在则创建

import java.io.File; import java.util.Date; public class Filetest {

public static void main(String[] args) {

File f=new File(\);//不指定绝对路径的话就和源文件同一目录 if(f.exists()){

f.delete();//存在则删除 } else{ }

System.out.println(\+f.getName()); System.out.println(\+f.getPath());

System.out.println(\+f.getAbsolutePath()); System.out.println(\+f.getParent()); System.out.println(f.exists()?\:\); System.out.println(f.canRead()?\:\); System.out.println(f.isDirectory()?\:\

try{

f.createNewFile();//不存在就创建 }catch(Exception e){}

directory\);

System.out.println(\:\+new Date(f.lastModified())); }

//将长整数转换为日前 }

19、RandomAccessFile类

提供了众多的方法,支持随机访问,即可以跳到文件的任何地方进行访问,读写操作都是从指示器指示的当前位置开始,读完后指到下一个地方,使用很广泛,如网络文件的续传,还有FTP的多线程下载,各个用户下载的内容在文件中的位置不一样,只有下载完后再组合成一个文件

在随机读取等长记录格式的文件有很大的优势,如以流的方式读取文件时候是顺序读取,那必需从头开始读取,而随机读取则就不需要了。记录格式的文件指的是文件中的信息是以记录的形式,如学生信息,每一条记录信息长度是一样的,每条信息又可以包含很多字段。 仅限于操作文件,不能访问其它IO设备, 两种构造方法:

new RandomAccessFile(f,”rw”)//读写方式 new RandomAccessFile(f,”r”)//只读方式 编程:向文件中写入三名员工信息,每一个员工含油姓名和年龄两个字段,然后按照第二名、第一名、第三名的先后顺序读出员工的信息