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”)//只读方式 编程:向文件中写入三名员工信息,每一个员工含油姓名和年龄两个字段,然后按照第二名、第一名、第三名的先后顺序读出员工的信息