Java-File
File类
文件和目录路径名的抽象表示形式
Java把电脑中的文件和文件夹封装为了一个File类,我们可以使用File类对文件和文件夹进行操作
注意:
File类与操作系统无关,任何操作系统都可以使用这个类
用于文件和目录的创建、查找和删除等操作
分隔符的使用
1 | static String pathSeparator |
示例代码
1 | String pathSeparator = File.pathSeparator; |
绝对路径与相对路径
注意事项:
- 路径不区分大小写
- 路径中的文件名称分隔符,windows使用反斜杠要写两个表示一个反斜杠
构造方法
1 | File(String pathname) |
第一个构造
1 | File f1 = new File("D:\\百度"); |
第二个构造
1 | public static void main(String[] args) { |
第三个构造方法
1 | File parent = new File("C:\\"); |
常用方法
获取功能的方法
1
2
3
4
5
6
7
8
9
10
11
12
13public String getAbsolutePath()
//返回此抽象路径名的绝对路径名字符串。
public File getAbsoluteFile()
//返回此抽象路径名的绝对路径名形式
public String getName()
//返回由此抽象路径名表示的文件或目录的名称
public long length()
//返回由此抽象路径名表示的文件的大小,以字节为单位
//如果此路径名表示一个文件夹,则返回值是不确定的
//如果路径不存在则返回0示例代码
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
30File f1 = new File("C:\\a.txt");
File f2 = new File("a.txt");
String str = f1.getAbsolutePath();
String str2 = f2.getAbsolutePath();
System.out.println(str);
//打印出绝对路径C:\a.txt
System.out.println(str2);
//打印出绝对路径D:\basic-code\a.txt
//默认会打印出当前路径下的绝对路径
System.out.println(f1.getPath());
//打印出绝对路径C:\a.txt
System.out.println(f2.getPath());
//打印出相对路径a.txt
System.out.println(f1);
//C:\a.txt
System.out.println(f1.toString());
//C:\a.txt,其实调用的就是toString方法
System.out.println(f1.getName());
//a.txt
System.out.println(f2.getName());
//a.txt,获取要么是文件要么是文件夹
System.out.println(f1.length());
//0,文件不存在返回0
System.out.println(f2.length());
//0判断功能的方法
1
2
3
4
5
6
7
8
9
10public boolean exists()
//测试此抽象路径名表示的文件或目录是否存在。
public boolean isDirectory()
//测试此抽象路径名表示的文件是否是一个目录。
//路径不存在返回false
public boolean isFile()
//测试此抽象路径名表示的文件是否是一个标准文件
//路径不存在返回false示例代码
1
2
3
4
5
6
7
8
9
10
11File f1 = new File("C:\\a.txt");
File f2 = new File("a.txt");
System.out.println(f1.exists());
System.out.println(f2.exists());
System.out.println(f1.isFile());
System.out.println(f2.isFile());
System.out.println(f1.isDirectory());
System.out.println(f2.isDirectory());创建删除功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14public boolean createNewFile()throws IOException
//当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
//只能创建文件,并且路径必须存在
public boolean delete()
//删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。
//delete不走回收站,会直接删除
public boolean mkdir()
//创建此抽象路径名指定的目录,单级文件夹
public boolean mkdirs()
//创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
//注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16File f1 = new File("D:\\a.md");
//在此声明你想要创建的文件,给文件起名
f1.createNewFile();
//文件存在返回false
f1.delete();
File f2 = new File("D:\\a");
f2.mkdir();
//只能创建单级文件夹
f2.delete();
File f3 = new File("D:\\a\\b");
f3.mkdirs();
//创建多级文件夹
f3.delete();遍历文件夹功能
1 | public String[] list() |
示例代码
1 | File f1 =new File("C:\\"); |
循环遍历多级目录
1 | public static void main(String[] args) { |
搜索文件
1 | public static void main(String[] args) { |
文件过滤器
1 | public File[] listFiles(FileFilter filter) |
FileFilter实现类
1 | public class FileFilterImpl implements FileFilter { |
main函数实现代码
1 | public static void main(String[] args) { |
FilenameFilter内部类
1 | public static void main(String[] args) { |