今天学习File类,该类可以操作文件以及文件夹~~内容会有点多,耐心学下去一定会有收获的。
一、概述
①、File类在 java.io 的包下,可以对文件和文件夹进行操作
②、可以使用File类的方法实现创建、删除、获取、判断、遍历等各类操作
③、File类是一个与系统无关的类,任何的操作系统都可以使用该类的方法
④、熟记三个单词
file:文件
directory:文件夹/目录
path: 路径
二、静态的成员变量
1、pathSeparator
路径分隔符,类型为String
各个系统的不一样,Windows是分号;,Linux是冒号:
2、pathSeparatorChar
与上面的变量类似,不同的是该成员变量是Char类型
3、separator
文件名称分隔符,类型为String
各个系统的不一样,Windows是反斜杠\ , Linux是正斜杠/
4、separatorChar
文件名称分隔符,类型为Char
同上一样,不同的也只是类型
// 路径分割符
String s = File.pathSeparator;
System.out.println(s);
// 文件分隔符
String f = File.separator;
System.out.println(f);
注意:由于系统的原因,所以路径不能够写死,此时可以使用该属性对路径进行修改
// 动态路径
File path = new File("E:" + f + "notepad_java");
System.out.println(path);
三、绝对路径和相对路径
绝对路径:以盘符开始
如:C://a.txt
相对路径:是一个简化的路径,如果使用当前项目的根据经目录可以简写
如: a.txt
注意
①、路径不区分大小写
②、路径中的文件名称分隔符Windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠
四、构造方法
1.File(String pathname)
简介:通过将给定路径名字符串转换为抽象路径来创建一个新File实例
参数:String pathname : 字符串的路径名称
注意:
①、路径可以是以文件结尾也可以是以文件夹结尾
②、路径可以是相对路径也可以是绝对路径
③、路径可以是存在也可以不存在
④、创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况
2、File(String parent,String child)
简介:根据parent路径名字符串和child路径名字符串创建
参数:把路径分为两个部分
String parent 父路径
String child 子路径
好处:父路径和子路径,都可以单独书写,使用起来非常灵活
3、File(File parent,String child)
简介:根据parent路径名字符串和child路径名字符串创建
好处:同上
区别:与上一个方法不同的是该方法父路径是File类型可以使用File类中的方法对路径进行操作再使用路径创建对象
五、获取的方法
1、getPath()
返回值为String类型,可以获取到当前File类的对象中封装的内容
2、getName()
返回值为String类型,获取的就是构造方法传递路径的结尾部分
如:c:\de\a.txt ==》 最后获取得到 a.txt
3、length()
获取的是构造方法指定的文件大小,以字节为单位
文件夹没有大小的概念,不能够获取文件夹的大小
如果方法中给的路径不存在则返回0
六、扩展
toString方法使用就是getPath()方法将内容转换为字符串形式
七、判断的方法
返回的都是布尔值
1、exists()方法
判断文件或者文件夹是否存在,存在返回true不存在返回false
2、isDirectory()方法
判断路径是否是以文件夹结尾
3、isFile()方法
判断路径是否是以文件结尾
4、注意
电脑的硬盘中只有文件或文件夹,所以两个方法是互斥的
使用前提:两个方法使用时路径必须存在,否则返回false
八、创建及删除的方法
1、createNewFile()
①、创建新文件
②、当且仅当具有该名称的文件不存在时,创建一个新的空文件
③、返回值是布尔类型:为true代表文件不存在并创建文件,为false代表文件存在不会创建
注意:
①、此方法只能创建文件不能创建文件夹,如果写入的是文件夹程序也不会报错,最后创建的还是文件不是文件夹
②、创建文件的路径必须存在,否则会抛出异常
③、由于声明createNewFile()方法抛出了IOException所以如果要使用该方法我们必须处理这个异常,要么throws要么try-catch
2、mkdir()和mkdirs()
mkdir
创建单级空文件夹
mkdirs
创建多级空文件夹
注意
不管传入的路径是文件夹还是文件,使用该方法最后创建的都是文件夹
代码
3、delete()
①、删除不走回收站,所以删除需要谨慎
②、返回布尔值,成功为true,失败为false
九、遍历文件夹
1、list()
①、返回一个String类型的数组,表示该File中的所有子文件和目录
②、遍历的是目录,如果路径不是文件夹则返回空指针异常
③、如果路径不存在也返回空指针异常
2、listFile()
①、会将隐藏的文件也打印出来
②、遍历构造方法中给出的目录,会获取目录中所有的文件/文件夹,把文件/文件夹封装成File对象,多个File对象存储到File数组中