File类
用来描述一个文件和文件夹的类
构造方法:
File(String pathname) 根据指定路径名创建一个File文件对象
File(File parent,String child) 根据parent抽象路径名和child路径名创建一个File文件对象
//第一种方法构造
File file=new File(“f:\\a.txt”);
//第二种方法构造
File parent=new File(“f:\\”);
File file=new File(parent,”a.txt”);
推荐使用:
File(File parent,String child) 来构造File对象
理由:可以对父路径进行一些预操作
注意事项:
1.有关目录分隔符的注意事项:
在Linux操作系统下的目录分隔符是 / ,在window操作系统下的目录分隔符是 \ 。
程序在不同操作系统下运行时需可通过静态成员separator来获取当前系统的目录分隔符。
File file=new File(“f:”+File.separator+”a.txt”);
//可以提高代码复用性
注:window系统能识别 \ 和 /,都可以作为目录分隔符。
2.有关路径的问题:
绝对路径:
资源文件在硬盘上的完整路径,一般以盘符开头。
相对路径:
资源文件相对于当前程序所在的路径。
注: . 表示当前路径 .. 表示上一级路径
常用方法:
创建:
- createNewFlie();
在指定位置创建一个空文件,成功返回true,如果已经存在该文件就不在创建并返回false。 - mkDir();
在指定位置创建文件夹,成功返回true,该方法只会创建一级目录
注:在使用以上方法创建文件或文件夹时如果上级目录不存在就抛出IOException异常。 - mkDirs();
在指定位置创建文件夹,成功返回true,该方法会创建多级目录 - renameTo(File dest);
当目标文件与源文件在同一个路径下,重命名文件或文件夹;若不在同一个路径下,removeTo的作用就是剪贴且在此情况下不能操作文件夹。
/*例子:*/
File file=new File(“f:\\a.txt”);
File destFile=new File(“f:\\b.txt”):
file.renameTo(destFile);
/*file与destFile在同一路径下:把file文件名改成destFile的文件名*/
File dest=new File(“E:\\c.txt”);
file.renameTo(dest);
/*file与dest在不同路径:把file文件剪贴到dest路径下,并以dest的文件名命名*/
删除:
- delete();
删除一个文件或者空文件夹,如果文件不为空则不能删除。成功返回true,失败返回false。 - deleteOnExit();
在虚拟机终止的时候删除文件,用于删除临时文件和异常时创建的文件。
注:以上两个方法的不同之处
delete(); 方法执行后,立马删除。
deleteOnExit(); 方法执行后,不删除文件,只有当虚拟机终止时,删除文件。
判断:
- exits(); 判断文件或问价夹是否存在。
- isFiles(); 判断是否为一个文件。
- isDirectory(); 判断是否为一个目录。
- isHidden(); 判断是否有隐藏的文件。
- isAbsolute(); 判断是否为绝对路径
注:以上方法:不存在、不是结果为false
获取:
文件相关:
- length(); 获取文件的大小。
- lastModified(); 获取最后一次被修改的时间,返回毫秒。
文件夹相关:
- listRoots();
列出所有的系统的根目录(系统的所有盘符),这是一个static方法,并返回File类型数组。 - list();
把当前路径下面的所有子文件和子文件夹存储到一String类型的数组中返回。 - listFiles();
把当前路径下面的所有子文件和子文件夹存储到一个File类型的数组中返回。 - list(FileNameFilter filter);
返回当前路径中符合过滤条件的子文件或者子文件夹,返回String数组。 - listFiles(FileNameFilter filter);
同上,但返回一个File数组。
/*注:参数FileNameFilter是一个接口。
作用:文件过滤
用法:实现该接口,并实现其的accept方法。*/
public boolean accept(File dir,String name){
/* 参数dir是文件的目录
参数name是文件名
书写符合一定要求文件目录和文件名的过滤规则该方法自动调用*/
}
每天学习一点点 未来爱你多一点