File类
File类主要是JAVA为文件这块的操作(如删除、新建等)而设计的相关类File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较
创建一个文件/文件夹
删除文件/文件夹
获取文件/文件夹
判断文件/文件夹是否存在
对文件夹进行遍历
获取文件的大小
File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法
重点:记住这第三个单词
file------文件
directory------文件夹/目录
path------路径
绝对路径------------是一个完整的路径
以盘符( 比如C:)开始的路径
c:\a.txt
c:\demo\b.txt
相对路径------------是一个简化的路径
相对指的是相对于当前项目的根目录
如果使用当前项目的根目录,路径可以简化书写
D:\java\Java语言高级\File类\File类\File类的概述.avi-->简化为------File类的概述.avi(可以省略项目的根目录)
注意
路径是不区分大小写
路径中的文件名称分隔符widows使用反斜杠,反斜杠是转义字符,`两个反斜杠代表一个普通反斜杠。
File类的静态属性
static String pathSeparator------与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar------与系统有关的路径分隔符。
windows下是分号,Linux下是冒号
static String Separator------与系统有关的默认名称分隔符,它被表示为一个字符串。
static char SeparatorChar------与系统有关的默认名称分隔符。
windows下是 \,Linux下是 /
java
public class filetest {
public static void main(String[] args) {
System.out.println(File.pathSeparator); //系统路径分隔符,win是分号,liunx是冒号
System.out.println(File.separator);
}
}
File类的构造方法
File(String pathname)
------通过将给定路径名字符串转换为抽象路径名来创建一个新的File实例。
参数
String pathname------------字符串的路径名称
路径可以是以文件结尾,也可以是以文件夹结尾(win中文件有扩展名就是文件平)。
路径可以是相对路径(以项目根目录),也可以是绝对路径。
路径可以是存在的,也可以是不存在的。
创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况。
java
public class filetest {
public static void main(String[] args) throws IOException {
File file = new File("xiong.txt");
file.createNewFile(); //只是文件名的话,文件创建放在项目的根目录下。
File file2 = new File("xiong");
file2.createNewFile();
file2.mkdir();
}
}
File(String parent, String child)
------根据parent路径名字符串和child路径名字符串来创建一个新的File实例。
参数------------------------把路径分成了两部分
String parent------------父路径,该路径中的文件夹是已存的,不存在会报错
String child---------------子路径
好处
父路径和子路径可以单独书写,使用起来非常灵活;父路径和子路径都可以变化。
java
public class filetest {
public static void main(String[] args) throws IOException {
File file = new File("C:\\abc\\","ccc.txt");
file.createNewFile();
System.out.println(file.getAbsolutePath());
}
}
File(File parent, String child)
------根据parent路径名字符串和child路径名字符串来创建一个新的File实例。
好处
父路径和子路径可以单独书写,使用起来非常灵活;父路径和子路径都可以变化。
父路径是File类型,可以使用File的方法对路径进行一些操作,在使用路径创建对象。
java
File fileparent = new File("c:\\abc");
fileparent.mkdir();
File file = new File(fileparent,"ccc.txt");
file.createNewFile();
System.out.println(file.getAbsolutePath());
File类中访问文件名相关的常用方法
public String getName()------------返回此File标识的文件或目录的名称。
public String getPath()------------将此File转换为路径名字符串。
public String getAbsolutePath()------------返回此File的绝对路径名字符串,返回的是绝对路径。
public String getParent()------------返回File对象所对应的目录(最后一级子目录)的父目录名称。
public boolean renameTo(File newName)------------重命名此File对象所对应的文件或目录,成返回true
File类检查文件的相关常用方法
public boolean exists()------------此File表示的文件或目录是否实际存在 。
public boolean isDirectory()------------此File表示的是否为目录 。
public boolean isFile()------------此File表示的是否为文件 。
public canWrite()------------此File是否可写
public canRead()------------此File是否可读
public isAbsolute()------------此判断创建File对象时是不是用的是绝对路径
获取文件常规信息的常用方法
public long lastModified()------------返回文件的最后修改时间。
public long length()------------返回文件内容的长度。
File类创建删除文件的常用方法
public boolean creatNewFile()------当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
creatNewFile声明抛出了IOException,我们调用这个方法,就必须处理这个异常,要么throws,要么try catch
public boolean delete()------删除由此File表示的文件或目录。
此方法,可以删除构造方法路径中给出的文件/文件夹。注意delete方法直接在硬盘删除文件/文件夹,不走回收站,删除要谨慎。
public boolean mkdir()------创建由此File表示的目录。
创建单级空文件夹
public boolean mkdirs()------创建由此File表示的目录,包括任何必需但不存在的父目录。
既可以创建单级空文件夹,也可以创建多级文件夹
File类遍历(文件夹)目录功能
public String[ ] list( )------返回一个String数组,表示该File目录中的所有子文件或子目录。
public File[ ] listFiles( )------返回一个File数组,表示该File目录中的所有子文件或子目录。
注意
list方法和listFiles方法遍历的是构造方法中给出的目录。
如果构造方法中给出的目录的路径不存在,会抛出空指针异常。
如果构造方法中给出的路径不是一个目录,也会抛出空指针异常。