File类
属于java.io.file中
和系统无关的一个类,任何OS都可以使用这个类
-
使用场景:
创建文件、目录
删除文件、目录
增添文件、目录
判断文件、目录是否存在
对文件夹遍历
获取文件大小 -
重点单词
File:文件
directory::目录
path:路径
路径分隔符
每个OS的分隔符都不同,
-
文件名称分隔符:
Windows:(反斜杠)\ ,linux(正斜杠)/
在File类中 由静态变量File.separator表示 -
路径分隔符:
Windows:分号 ; ,linux 冒号 :
在File类中 由静态变量File.pathseparator表示 -
使用场景:
路径不能写死,必须要用 静态变量表示:
C://aaa/ccc/File.java
C:+File.separator+aaa+ccc+File.java
(访问 C盘下aaa文件夹中的ccc文件夹下的名为:File的 java文件)
绝对路径和相对路径
-
绝对路径:是指带有具体盘符的完整路径(C:\aaa\ccc\File.java)
-
相对路径是在当前项目的根目录下的相对位置(简化书写)
比如C:\aaa\ccc\为根目录,要访问File.java文件
可简化为 File.java -
使用场景:
绝对路径:查找文件
相对路径 :配置项目文件信息,简化书写 -
注意:
路径不区分大小写
反斜杠是转义字符,所以Windows需要两个 \
File类中的构造函数
- 常用的构造函数
File(String path)
File(String parent ,String child)
File(File parent,String child)
这三种都能创建出File类型是实例对象,而且后2种更加灵活,File 的parent 能在传进去之后调用File类的方法。
File 常用的方法
- 获取方法
getAbsolutePath() :获取File的绝对路径字符串
File f1 = new File(C:\\abc\\hello.java);
f1.getAbsolutePath(); //得到的就是C:\abc\hello.java
现假设 根目录 的路径是C:\\abc
File f2 = new File(hello.java);
f2.getAbsolutePath(); //得到的还是绝对路径 C:\abc\hello.java
所以调用了这个方法,就会访问File的绝对路径
getPath(): 将File转换为路径名字符串
跟getAbsolutePath()方法不同,这个方法调用返回的值就是实例对象的路径(绝对的就返回绝对的,相对的就返回相对的)
File f1 = new File(C:\\abc\\hello.java);
f1.getPath(); //得到的绝对路径 C:\abc\hello.java
现假设 根目录 的路径是C:\\abc
File f2 = new File(hello.java);
f2.getPath(); //得到的是相对路径 hello.java
getName() : 获取文件名或目录名
-
length(): 返回文件大小
注意: directory没有大小概念 file才有
若构造函传递的文件路径是不存在的,那么返回length为 0 -
判断功能的方法
exists() :判断文件、目录是否存在
isDirectory():判断是否为目录
isFile():判断是否为文件 -
创建以及删除功能的方法
1、delete() 方法 :
删除文件和目录都可以,删除目录时,保证目录为空。删除不走回收站,直接删除,谨慎操作
2、mkdir()
创建 单级目录 返回booler值
true :创建成功,
false:路径错误;目录已存在
3、mkdirs()
创建 多级目录 返回booler值
true :创建成功,
false:路径错误;目录已存在
4、createNewFile()
创建 新文件 返回booler值
true :创建成功,
false:路径错误;文件已存在 -
File遍历(文件夹)
Filelist():返回的是File文件类型数组,表示FIle目录中的所有子文件和目录
list():返回的是String 数组的list数组,表示FIle目录中的所有子文件和目录
两种方法都遍历构造方法种的目录
若这个路径是不存在,会抛出空指针异常
若这个路径不是个目录,那也会抛出空指针异常