File类总结:
1.File类常用方法
2.列出指定目录下的所有文件及目录的方法
3.介绍一下FileFilter的用法
1.File类常用方法
(1).创建文件:f1.createNewFile()
(2).创建目录:f1.mkdir();
(3).创建多层目录:f3.mkdirs();
(4).判断是否是文件:f1.isFile();
(5).判断f2是否是目录:f2.isDirectory();
(6).判断f1是否是文件:f1.isFile();
(7).得到f1的名字:f1.getName()
(8).文件f1最后修改时间:f1.lastModified();
(9).判断文件f1是否存在:f1.exit();
(10).文件删除:f4.delete()
(11).列出所有文件夹中所有文件及文件夹File[] fileArr = f3.listFiles();
for(File f : fileArr){
System.out.println(f.getName());
}
借助下面这段代码进行说明上述方法的具体用法,里面有详细的说明这里不再赘余。
import java.io.File; import java.io.IOException; public class FileOpreation { public static void main(String[] args) { //初始化File对象,其中""中是文件路径或者文件目录,对f1的不同操作会确定其具体是目录还是文件路径,在下面将会提到 //文件路径有两种书写格式,看下面两行,下面代表的意思是d盘下的a.txt //1.File f1 = new File("d:\\a.txt");<==>File f1 = new File("d:/a.txt"); //2.File f1 = new File("d:","a.txt"); File f1 = new File("d:\\a.txt"); File f2 = new File("d:\\test"); File f3 = new File("d:/test/test/test"); File f4 = new File("d:/b.txt"); //创建文件f1.createNewFile();这里会有IOException异常,需要try-catch语句处理异常 //创建目录f1.mkdir(); try { f1.createNewFile(); f4.createNewFile(); } catch (IOException e) { e.printStackTrace(); } //创建目录,可以是创建单层目录可以是创建多层目录 //创建单层目录 f2.mkdir(); //创建多层目录 f3.mkdirs(); //判断是否是文件f1.isFile();,返回值为boolean类型,是文件返回true,不是则放回false boolean b1 = f1.isFile(); //可以输出看看结果为true System.out.println("b1:"+b1); //判断是否是目录f2.isDirectory();返回值为boolean类型,是文件返回true,不是则放回false boolean b2 = f2.isDirectory(); boolean b3 = f1.isDirectory(); System.out.println("b2:"+b2);//b2:true System.out.println("b3:"+b3);//b3:false //得到f1的名字 String fname = f1.getName(); System.out.println("f1:"+fname);//a.txt //返回long类型的值,用与时间点(1970 年 1 月 1 日,00:00:00 GMT)之间的毫秒数表示; //如果该文件不存在,或者发生 I/O 错误,则返回 0L long ltime = f1.lastModified(); System.out.println("ltime:"+ltime);//ltime:1374906471501 //判断文件是否存在,是则返回true,不是则返回false boolean b4 = f1.exists(); System.out.println("b4:"+b4);//b4:true //删除文件,可以观察d盘下b.txt文件被删除了, 对于文件夹来说,只有空文件夹才能删除。 //java中的删除,跟回收站没有关系。 f4.delete(); System.out.println("*************"); // 列出一个文件夹中的所有文件及文件夹 File[] fileArr = f3.listFiles(); for(File f : fileArr){ System.out.println(f.getName()); } } }
2.下面给一个列出指定目录下的所有文件及目录的一段代码,这段代码只要把f.delete()方法及file.delete()方法加上,就可以完成指定目录的格式化,但是注意慎用
import java.io.File; public class ListAllFile { public static void main(String[] args) { //初始化File File file = new File("d:\\test"); //调用print()方法 print(file); } public static void print(File file){ //列出所有文件 File[] fileArr = file.listFiles(); //foreach循环,格式为for(文件类型 变量名:数组/集合) for(File f : fileArr){ //判断是否是目录,如果是则输出目录名,调用print()方法。是递归调用,如果不是目录名则直接输出文件的名字 if(f.isDirectory()){ System.out.println(f.getName()); print(f);// 参数变化。 }else{ System.out.println(f.getName()); //如果加上下面这行,即f.delete();则会删除所有文件,所以慎重使用 // f.delete(); } } //删除文件夹。对于文件夹来说,只有空文件夹才能删除。 //所以只有上面那行f.delete()方法将所有文件删除后,file.delete()才会好使;java中的删除,跟回收站没有关系。 // file.delete(); } }
3.下面用一段代码,介绍一下FileFilter的用法
import java.io.File; import java.io.FileFilter; public class TestFileFilter { public static void main(String[] args) { File file = new File("d:\\myjava"); // 匿名内部类+回调方式 File[] fileArr = file.listFiles(new FileFilter(){// 参考Comparable接口。 @Override public boolean accept(File f) { if(f.getName().endsWith(".java")){ return true; }else{ return false; } } });// 回调 for(File f : fileArr){ System.out.println(f.getName()); } } /*private static class MyFileFilter implements FileFilter{ @Override public boolean accept(File f) { if(f.getName().endsWith(".java")){ return true; }else{ return false; } } }*/ }