File是用于代表磁盘文件本身的,File中定义了一些方法操纵磁盘文件,包括创建、删除重命名文件,查看文件读写权限,判断文件是否存在,查询文件的最近修改时间等。
1、下面的程序将演示部分操作:
boolean delete() 删除此抽象路径名表示的文件或目录。
boolean exists() 测试此抽象路径名表示的文件或目录是否存在。
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。
long length() 返回由此抽象路径名表示的文件的长度。
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileDemo01 {
public static void main(String[] args)throws IOException {
File file = new File("D:/FileTest/a.txt");
if(file.isDirectory()){
System.out.println("是一个目录");
}else if(file.isFile()){
System.out.println("是一个文件");
file.createNewFile();
}
if(file.exists()){
System.out.println("文件的长度: "+file.length());
//将毫秒转换成我们可以感知的时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
date.setTime(file.lastModified());
String str = sdf.format(date);
System.out.println("文件最后修改时间 : "+str);
}
file.delete();
}
}
--------------------------------
是一个文件
文件的长度: 0
文件最后修改时间 : 2012年11月08日20时03分13秒
--------------------------------
2、利用递归方式输出目录下指定类型的文件
String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
import java.io.*;
public class FileDemo02 {
public static void main(String[] args) {
loop("D:/FileTest");
}
public static void loop(String dir){
File file = new File(dir);
String[] str = null;
if(file.isDirectory()){
str = file.list();
for(int i = 0; i<str.length; i++){
loop(dir+"/"+str[i]);
}
}else{
if(new Fileter().accept(null, dir)){
System.out.println(dir);
}
}
}
}
class Fileter implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
//注意,此处我们不考虑目录,只考虑文件类型
if(name.endsWith("doc")){
return true;
}else{
return false;
}
}
}
-------------------------------------
D:/FileTest/doc/b1.doc
D:/FileTest/doc/b2.doc
D:/FileTest/doc/b3.doc
D:/FileTest/doc/b4.doc
D:/FileTest/doc/b5.doc
-------------------------------------
好了,关于File的使用就介绍这些了,其他方法的使用可以参考API。