1 File类
File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成。不管是文件还是目录都是使用File来操作的,File能新建,删除,重命名文件和目录,File 不能访问文件的内容本身。如果需要访问内容本身,则需要使用输入输出流。
1.1 访问文件和目录
file类可以使用文件路径字符串来创建File实例,该文件路径字符串既可以是绝对路径,也可以是相对路径。在默认的情况下,系统会依据用户的工作路径来解释相对路径,这个路径由系统属性“user.dir”指定,通常就是java虚拟机运行时所在的路径。
一旦创建了File对象后,就可以调用File对象的方法来访问,File类提供了很多方法来操作文件和目录,方法如下:
1. 访问文件名相关的方法
String getName() : 返回此File对象所表示的文件名或者路径名(如果是路径,则返回最后一级子路径名)。
String getPath() : 返回此File对象的绝对路径名。
File getAbsoluteFile() : 返回此File对象所对应的绝对路径名。
String getParent() : 返回此File对象所对应的目录(最后一级子目录)的父目录名。
boolean renameTo(File newName) 重命名此File对象所对应的文件或目录,如果重命名成功则返回true; 否则返回false.
2. 文件检测相关的方法
boolean exists() : 判断File对象所对应的文件或者目录是否存在。
boolean canWrite() : 判断File对象所对应的文件和目录是否可写。
boolean canRead() : 判断File对象所对应的文件和目录是否可读。
boolean isFile() : 判断File对象所对应的是否是文件,而不是目录。
boolean isDirectory() : 判断File对象所对应的是否是目录而不是文件。
boolean isAbsolute() : 判断File对象所对应的文件或目录是否是绝对路径。该方法消除了不同平台的差异,可以直接判断File对象是否为绝对路径。
3. 获取常规文件信息
long lastModified() : 返回文件最后修改的时间。
long length() : 返回文件内容的长度。
4. 文件相关操作方法
boolean createNewFile() : 当此File对象所对应的文件不存在时,该方法将新建一个该File对象所指定的新文件,如果返回true,则表示创建成功,否则表示创建失败。
boolean delete() : 删除File对象所对应的的文件或者路径。
boolean deleteOnExit() : 注册一个删除的钩子,指定当java虚拟机退出时,删除File对象所对应的文件和目录。
5. 目录操作相关的方法
boolean mkdir() : 试图创建一个File对象所对应的的目录,如果创建成功,则返回true; 否则返回false.调用该方法的时候必须是一个路径而不是一个文件。
String[] list() : 列出对象多有子文件名和路径名,返回String数组。
File[] listFiles() : 列出File对象所有的子文件和路径,返回File数组。
static File[] listRoots() : 列出系统所有的根路径。这是一个静态方法,可以直接通过File类来调用。
6. File方法示例
File代码实例如下图所示:
1.2 File文件过滤器
在File类的list()方法中可以接收一个FilenameFilter参数,通过该参数可以只列出符合条件的文件,FilenameFilter接口里包含了一个accept(File dir, String name)方法,该方法 将依次指定File的所有子目录或者文件进行迭代,如果该方法返回true,则list()方法会列出该子目录或者文件。文件过滤器代码如下: