File类-Java

File类的静态成员变量

  • static String pathSeparator:和系统有关的路径分隔符
  • static charpathSeparatorChar
  • static String separator:与系统有关的默认名称分隔符
  • static char separatorChar
1
2
3
System.out.println(File.pathSeparator);
System.out.println(File.separator);
String file = "c:" + File.separator + "hxx.txt";

File类的构造方法

  • public File(String pathname):通过将给定的路径字符串转换为抽象路径名来创建新的File实例
  • public File(String parent,String child):从父路径名字符串和子路径创建新的file实例
  • public File(File parent,String child):从父抽象路径名和子路径字符串创建新的file实例

File类获取方法

  • public String getAbsolutePath():返回绝对路径名字符串
  • public String getPath():将FIle转换为路径名字符串
  • public String getName():返回此File表示的文件或者目录的名称
  • public long length():返回此文件的长度

File类判断

  • public boolean exists():此File表示的文件或者目录是否存在
  • public boolean isDirectory():此File是否为目录
  • public boolean isFile():此File是否为文件

File创建删除

  • public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的文件
  • public boolean delete():删除此文件或者目录
  • public boolean mkdir():创建目录
  • public boolean mkdirs():创建目录,包括任何必须但不存在的父目录
1
2
3
4
5
6
7
8
9
10
//String file = "f:" + File.separator + "hxx.java";
String file ="hxx.txt";
File f = new File(file);
System.out.println("文件绝对路径" + f.getAbsolutePath());
System.out.println("文件构造路径" + f.getPath());
System.out.println("文件名称" + f.getName());
System.out.println("文件长度" + f.length());
System.out.println(f.getAbsoluteFile() + "是否存在:" + f.exists());
System.out.println("是否创建:" + f.createNewFile());
//System.out.println("是否删除:" + f.delete());

File目录的遍历

  • public String[] list():返回一个String数组,表示该File目录中的所有子文件或目录
  • public File[] listFiles():返回一个File数组,表示该File目录中的所有子文件或目录

FileFilter过滤器

  • public File[] listFiles(FileFilter filter)

  • java.io.FileFilter接口用于过滤文件,其中只有一个抽象方法accept(File pathname),用来设置过虑规则。

  • java.io.FilenameFilter接口用于过滤文件名称,其抽象方法accept(File dir,String name),用来测试指定文件是否应该包含在某一个列表中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public static void main(String[] args){
File file = new File("F:");
getAllFile(file);
}

public static void getAllFile(File dir){
/*File []files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.isDirectory())return true;
return pathname.getName().toLowerCase().endsWith(".txt");
}
});*/
File []files = dir.listFiles(new FilenameFilter() {

@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isDirectory() || name.toLowerCase().endsWith(".txt");
}
});
for (File file : files) {
if(file.isDirectory()){//递归遍历目录
getAllFile(file);
}
else{
System.out.println(file);
}
}
}