利用File自动更新文件

File类提供了一些方法可以用来操作文件和获得文件的信息.通过File类的方法,可以得到文件或目录的描述,包括名称,所在路径,读写性,长度等,静儿可以进行创建目录,创建临时文件,改变文件名,删除文件,列出一个目录中所有的文件或某个模式相匹配的稳健操作等...

1.构造方法

publicFile(Stringpathname):根据parent抽象路径名和child路径名字符串创建一个新File对象.

publicFile(Fileparent,Stringchild):通过将制定路径名字符串和child路径名字符串创建一个新File对象.

publicFile(Stringparent,Stringchild):根据parent路径名字符串和child路径名字符串创建一个新File对象.

publicFile(URIuri):通过将指定的File:URI转化为一个抽象路径名来创建一个新的File对象.

2.提供的方法

(1)访问文件对象

publicStringgetName():返回文件对象名,不包括路径名

publicStringgetPath():返回相对路径名,包含文件名

publicStringgetAbsolutePath():返回绝对路径名,包含文件名

publicStringgetParent():返回父文件对象的路径名

publicFilegetParentFile():返回父文件对象

(2)获得文件属性

publiclonglength();返回指定文件的字节长度

publicbooleanexists():测试指定的文件是否存在

publiclonglastModified()返回指定文件最后被修改的时间.

(3)文件操作

publicbooleanrenameTo(Filedest)文件重命名

publicbooleandelete()删除空目录

(4)目录操作

publicbooleanmkdir():创建指定目录,正常建立时返回true

publicString[]list():返回目录中的所有文件名字符串

publicFile[]listFiles():返回指定目录中的所有文件对象

实例:

import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; public class FileUpdateTest { public static void main(String[] args) throws IOException{ String fname = "source.txt"; String destdir = "backup"; update(fname,destdir); } private static void update(String fname, String destdir) throws IOException { File f1,f2,dest; f1=new File("res",fname); dest = new File("res",destdir); if(f1.exists()){ if(!dest.exists()) dest.mkdir(); f2 = new File(dest,fname); long d1 = f1.lastModified(); long d2 = f2.lastModified(); if((!f2.exists()) || f2.exists() && d1>d2){ copy(f1,f2); } showFileInfo(f1); showFileInfo(dest); }else{ System.out.println(f1.getName()+"file not found"); } } public static void copy(File f1, File f2) throws IOException{ FileInputStream fis = new FileInputStream(f1); FileOutputStream fos = new FileOutputStream(f2); int count,n = 512; byte buffer[] = new byte[n]; count = fis.read(buffer,0,n); while(count!=-1){ fos.write(buffer,0,count); count = fis.read(buffer,0,n); } System.out.println("复制文件"+f2.getName()+"成功"); fis.close(); fos.close(); } public static void showFileInfo(File f1) { // TODO Auto-generated method stub SimpleDateFormat sdf; sdf = new SimpleDateFormat("yyy 年 MM 月 dd 日 hh 时 mm 分"); if(f1.isFile()){ String filepath = f1.getAbsolutePath(); Date da = new Date(f1.lastModified()); String mat = sdf.format(da); System.out.println("<文件:>\t"+filepath+"\t"+f1.length()+"\t"+mat); } else{ System.out.println("<目录:>\t"+f1.getAbsolutePath()); File[]files = f1.listFiles(); for(int i=0;i<files.length;i++){ showFileInfo(files[i]); } } } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值