Java File类简介
首先File类位于java.io包下,我们来看下File的继承体系。
可以看到File类实现了Comparable接口,所以File类是可以进行比较的,这和我们平时可以根据文件名、创建日期这些对文件进行排序是相符合的。
然后我们再来看看File类中的主要构造方法。
常见的构造方法有直接传入一个绝对路径 ,或者给出父文件或者父目录进行创建。
File类里面需要掌握的常用方法(注意File类的基本操作都是针对这个文件,而不是里面的内容)
//方法一:判断该文件是否可执行
public boolean canExecute();
//方法二:判断文件是否可读
public boolean canRead();
//方法三:判断方法是否可写
public boolean canWrite();
//方法四:创建新文件,注意这里真的只是创建文件,创建的时候最好指定文件的类型
//并且如果父目录不存在的话,会抛出IOException
public boolean createFile();
//方法五:删除目录,如果是一个文件则直接删除,是文件夹的话该文件夹
//必须为空才能删除
public boolean delete();
//方法六:测试文件或者文件夹是否存在
public boolean exist();
//方法七:返回当前目录文件或者文件夹的名称
public String getName();
//方法八与方法九:返回父目录的字符串形式或文件形式
public String getParent();
public File getParentFile();
//方法十与方法十一:判断是否为文件/目录
public boolean isFile();
public boolean isDirectory();
//方法十二:一个路径如果为文件夹,则返回这个文件夹里面的所有内容的文件数组
//否则返回null
public File[] listFiles();
//方法十三十四:mkdir创建的是当前目录,如果父目录不存在的话会创建失败
//而mkdirs会创建当前目录,如果父目录不存在的话,他会创造所有需要的父目录
public boolean mkdir();
public boolean mkdirs();
//方法十五:给当前目录改名字
public boolean renameTo();
下面我们简单来两个案例,第一个是遍历一个目录下所有的文件
public static void getFile(File file){
if (file==null){
throw new NullPointerException("输入的文件错误!!!");
}
if (file.isDirectory()){
File[] files = file.listFiles();
for (File f : files) {
getFile(f);
}
}else {
System.out.println(file);
}
}
第二个是统一修改目录下所有的文件后缀名
public static void reNameFile(File file){
if (file==null){
throw new NullPointerException("文件名错误!!!");
}
if (file.isDirectory()){
File[] files = file.listFiles();
for (File f : files) {
reNameFile(f);
}
}else {
File parentFile = file.getParentFile();
String name = file.getName();
name=name.substring(0,name.lastIndexOf("."))+".txt";
File dest = new File(parentFile, name);
file.renameTo(dest);
}
}
总结:
File类java.io包下十分重要的一个类,在Java中描述文件对象的类仅此一个,File类内的方法基本都是对文件和文件夹本身进行的操作,总的来说File类的几个关键点一个就是File目录的路径,另外就是因为File既可以表示文件又可以表示文件夹,所以再进行一些操作时需要区分进行操作。