Java之File类详解

时间:2021-01-19 06:57:58

常用操作:

         File f = new File("C:\\testdata\\filedir\\a\\b\\c");
f.mkdir(); //建立单级目录
f.mkdirs(); //建立多级目录
         File f = new File("C:\\testdata\\filedir\\a.txt");
f.createNewFile(); //创建文件
System.out.println("文件是否存在:" + f.exists());
System.out.println("是否是文件:" + f.isFile());
f.delete(); //删除file
f.exists(); //文件或目录是否存在
f.getName(); //得到file名字
f.getPath(); //获取文件的完整路径
f.isDirectory(); //file是否是文件夹
f.isFile(); //file是否是文件
f.length(); //file的长度,返回long,单位字节

创建File对象的另一种方式:

     /*创建File对象的另一种方式*/
// 此时f2是文件,parent文件夹下的child文件
File f2 = new File("parent","child");
// 注意:此时会在c盘下创建文件“d.txt”
File f3 = new File("c:\\", "d.txt");
f3.createNewFile();

list()和listFiles()的区别:

         File f = new File("C:\\testdata\\filedir");
/* 返回String[]数组.里面包含了f一级目录下的文件和文件夹名.
注意: 如果f:\\a\\b.那么b不会包含在数组中 */
String[] fileStrs = f.list();
for (String s : fileStrs) {
System.out.println(s);
}
/* 返回File[] 数组.里面包含了f一级目录下的文件和文件夹.
注意:如果f:\\a\\b.那么b不会包含在数组中 */
File[] files = f.listFiles();
for (File ff : files) {
System.out.println(ff);
}

文件过滤:

         /*文件过滤器*/
File f1 = new File("C:\\testdata\\filedir");
String[] fileStrs = f1.list(new FilenameFilter() {
/**
* dir:需要被过滤的文件夹
* name:需要别被过滤的文件名,此名是相对路径
* 如果返回true,则证明是符合条件的文件,会将改文件名返回到数组中
*/
@Override
public boolean accept(File dir, String name) {
File f = new File(dir, name);
if (f.isDirectory()) {
return false;
} if (f.getName().endsWith("txt")) {
return true;
}
return false;
}
});
for (String s : fileStrs) {
System.out.println(s);
}