一起学JAVA——文件操作
File类在整个IO包中与文件本身有关的操作类,所有的与文件本身有关指的是创建、删除文件等操作。在java.io包中的File类本身是一个跨平台的文件操作类,所以在操作中要更多地考虑到各个操作系统的区别。
File类构造方法
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
Java的最大特点之一是可移植性,但是在不同的操作系统中路径的分隔符肯定是不一样的:
windows中使用“”linux中使用“/”那么要想解决这样的问题,就必须观察File类定义的常量:public static final String separator。separator是一个常量,按照常量的命名要求肯定全部的字母都要大写:SEPARATOR。这些都是由于Java发展史所造成的问题。
核心方法
String getName():返回文件名或路径名(若是路径,返回最后一级子路径名) String getPath():返回对象对应的路径名
File getAbsoluteFile():返回绝对路径 String getAbsolutePath():返回对象对应的绝对路径
String getParent():返回文件目录的上一级目录名
boolean renameTo(File newName):重命名此File对象对应的文件或目录,若重命名成功返回true
访问文件和目录的方法
String getName():返回文件名或路径名(若是路径,返回最后一级子路径名)
String getPath():返回对象对应的路径名
File getAbsoluteFile():返回绝对路径
String getAbsolutePath():返回对象对应的绝对路径
文件检测相关方法
boolean exists():判断对象对应的文件或目录是否存在;
boolean canWrite():判断对象对应文件或目录是否可写;
boolean canRead():判断对象对应文件或目录是否可读;
boolean isFile():判断对象是文件,不是目录;
boolean isDirectory() 判断对象的文件是否是一个目录;
boolean isAbsolute() 判断对象对应文件或目录是否为绝对路径名;
boolean isHidden() 判断此路径名指定的文件是否是一个隐藏文件。
long lastModified() 返回文件最后一次被修改的时间。
long length() 返回文件内容的长度。
文件操作的相关方法
boolean createNewFile() 当且仅当不存在,该方法创建一个该File对象所指定的新文件,创建成功返回true。
boolean delete():删除File对象所对应的文件或路径;
boolean mkdir() 创建File对象所对应的目录,调用该方法的File对象必须对应路径,而不是文件。
String[] list():列出File对象的所有子文件名和路径名。
File[] listFiles():列出File对象的所有子文件和路径。
static File[] listRoots():列出系统所有的根路径
递归(Recursion)
现在要删除一个包含子文件的文件夹。
本程序肯定只能依靠递归的操作完成,因为java不能直接删除一个非空文件夹,在一个给定的文件夹下有可能还是文件夹,所以我们在删除文件夹前要先删除子文件。
什么是递归:
递归就是在方法里调用自身;在使用递归时,必须有一个明确的递归结束条件,称为递归出口。
java.io.FilenameFilter(文件过滤器)
File 类里有方法: String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
FilenameFilter(文件过滤器)该接口里包含accept(File dir,String name)方法,该方法依次对指定File的所有子目录,子文件夹进行迭代。
dir - 被找到的文件所在的目录。name - 文件的名称。当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false
精品推荐:
《IT好员工的职业修养》其一
一起学JAVA——反射技术
编程技术笔记——Docker试用
编程技术笔记——搭建Redis5集群