File类
一、File类概述
java.io.File 类是文件和目录名的 抽象 表示 ,主要用于文件和目录的创建,查找,删除,重命名文件,查询文件最近的修改时间等操作 。
java把电脑中的文件和文件夹(目录)封装为一个与操作系统无关的File类。
二、File类内容整理
1.常量
四个静态成员变量:
1.static String pathSeparator,路径分隔符 Windows → ;、Linux → :
2.static char pathSeparatorChar,路径分隔符 Windows → ;、Linux → :
3.static String separator,名称分隔符 Windows → \、Linux → /
4.static char separatorChar ,名称分隔符 Windows → \、Linux → /
注意事项:
1.路径分隔符不建议使用常量直接定义,应该使用 File.separator 来代替斜杠(具有跨平台特性,可适应多种操作系统)
2.pathSeparatorChar 与 pathSeparator 和 separatorChar 与 separator 的区别
将字符型的pathSeparatorChar与separatorChar 与 空的 “双引号”相加 得出pathSeparator与separator
public static final String pathSeparator = "" + pathSeparatorChar;
public static final String separator = "" + separatorChar;
2.构造方法
File(String pathname):字符串做参数创建File对象。
File(String parent, String child):第一个与第二个字符串拼接创建File对象。
File(File parent, String child):第一个File对象与第二个字符串拼接创建File对象。
File(URI uri) 通过将给定的 file: URI转换为一个抽象路径名来创建File对象。
3.成员方法
获取文件(目录)信息
(1)getAbsolutePath方法,返回此File的 绝对路径 字符串
方法信息:
public String getAbsolutePath()
//创建File对象
File file = new File("D:\\我的文件\\test.txt");
//返回此File的绝对路径名字符串。
File fileAbsoluteFile = file.getAbsoluteFile();
System.out.println("文件/文件夹的绝对路径为:"+ fileAbsoluteFile);
(2)getPath方法,将此File转换为 路径名 字符串
方法信息:
public String getPath()
File类的toString方法 就是 调用的getPath方法。
//将此File转换为路径名字符串。
String filePath = file.getPath();
System.out.println("文件/文件夹的构造路径为:" + filePath);
(3)getName方法,返回由此File表示的文件或目录的名称
方法信息:
public String getName()
传递的File对象的结尾部分。
//返回由此File表示的文件或目录的名称。
String fileName = file.getName();
System.out.println("文件/文件夹的名称为:" + fileName);
(4)length方法,获取文件大小,文件大小以字节为单位
方法信息:
public long length()
如果文件不存在,返回 0;
如果File对象表示一个目录,则返回值是不确定的
long fileLength = file.length();
System.out.println("文件/文件夹的长度(大小)为:" + fileLength);
(5)getParent方法,获取父文件夹名称
方法信息:
public String getParent()
System.out.println("父文件夹名称为" + file.getParent());
(6)canRead方法,文件是否可读。
方法信息:
public boolean canRead()
System.out.println("文件是否可读?" + file.canRead());
(7)canWrite方法,文件是否可写
方法信息:
public String canWrite()
System.out.println("文件是否可写?" + file.canWrite());
(8)lastModified方法,获取文件最后修改日期
方法信息:
public long lastModified()
用long类型的毫秒数表示,为什么返回的是毫秒数值?点这里。
System.out.println("文件最后修改日期为:" + file.lastModified());
判断文件(目录)是否存在
(1)exists方法,此File表示的文件或目录是否实际存在。
方法信息:
public boolean exists()
//创建对象
File dir = new File("D:\\我的文件\\");
File file = new File(dir+"test.txt");
//判断file实例是否存在
System.out.println("目录是否存在:" + dir.exists());
System.out.println("文件是否存在:" + file.exists());
(2)isDirectory方法,此File表示的是否为目录。
方法信息:
public boolean isDirectory()
//判断是文件还是目录
System.out.println("dir是文件吗?" + dir.isFile());
(3)isFile方法,此File表示的是否为文件。
方法信息:
public boolean isFile()
传递的File对象的结尾部分。
//判断是文件还是目录
System.out.println("dir是目录吗?" + dir.isDirectory());
创建文件(目录)
(1)createNewFile方法,当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
方法信息:
public boolean createNewFile()
此方法存在IOException异常,必须要进行异常处理(throws,try...catch)
当文件不存在时,创建文件,返回true,存在返回false不覆盖
此方法只能创建文件,不能创建文件夹
创建文件的路径必须存在,否则会出现异常
//创建对象
File dir = new File("D:\\我的文件\\");
File file = new File(dir+"test01.txt");
//创建文件
System.out.println("是否创建:" + file.createNewFile());
(2)mkdir方法,创建由此File表示的目录。
方法信息:
public boolean mkdir()
只能创建单级空文件夹
文件夹不存在,则创建,返回true
文件夹存在,返回false,如果构造方法中的路径不存在也会返回false
//创建对象
File dir = new File("D:\\我的文件\\mkdir");
System.out.println("是否创建:"+dir.mkdir());
(3)mkdirs方法,创建由此File表示的目录,包括任何必需但不存在的父目录。
方法信息:
public boolean mkdirs()
可创建多级文件夹
只能创建文件夹(mkdir也是(例如xxx.txt只会创建这名称的文件夹而不是文件))
//创建对象
File dir = new File("D:\\我的文件\\mkdirs");
System.out.println("是否创建:"+dir.mkdirs());
删除文件(目录)
(1)delete方法,删除由此File表示的文件或目录。
方法信息:
public boolean delete()
可以删除文件,也可以删除文件夹
文件或者文件夹删除成功返回true
文件夹中有文件或者文件夹返回false
文件或者文件夹路径不存在返回false
此删除方式删除的文件不会进入到回收站
【注意】避免测试使用是删除重要文件,直接操作硬盘,而不是Windows的“假删除”
//创建对象
File dir = new File("D:\\我的文件\\");
File file = new File(dir+"test.txt");
//文件的删除
System.out.println("test.java是否删除" + file.delete());
//目录的删除
System.out.println("目录是否删除" + dir.delete());