File类直接操作文件和文件系统。 File类没有指定信息怎样从文件读取或向文件存储; 它描述了文件本身的属性。 File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。 此外,File还浏览子目录层次结构。 |
Java 中的目录当成File 对待,它具有附加的属性——一个可以被 list( ) 方法检测的文件名列表。
- File(String directoryPath)
- File(String directoryPath, String filename)
- File(File dirObj, String filename)
- File file = new File("D:/");
- File file2 = new File("D:/", "test.txt");
- File file3 = new File(file, "test.txt");
- //file2和file3指向相同的文件
File 定义了很多获取File对象标准属性的方法
- getName() // 返回文件名
- getPath() // 返回目录
- getParent() // 返回父目录名
- exists() // 判断文件是否存在 true存在
- //其他的查看api
特殊方法
isFile()在文件被调用的时候返回true,在目录被调用的时候返回false,可用来判断是否是文件执行 isAbsolute()在文件拥有绝对路径时返回true,相对路径时返回false |
file还包含两个实用的方法
- //文件命名成功返回true,命名失败返回false
- boolean renameTo(File newName)
- //当文件目录为空时删除目录,删除成功返回true 删除失败返回false
- boolean delete( )
其他一些新增方法
- void deleteOnExit() //在java 虚拟机终止时删除与调用对象相关的文件
- boolean isHidden() //判断调用文件是否隐藏
- boolean setReadOnly() //设置调用文件为只读
一、目录
目录是一个包含其他文件和路径列表的File类
当你创建一个file对象且他/她是目录时,调用isDirectory()返回ture,这时 可以调用list() 返回一个String数组对象 包含该目录内部其他文件和目录的列表
- //返回该目录下的文件和目录的列表
- String[ ] list()
例子:将D盘的文件和目录列表输出
- public static void main(String[] args) {
- File file = new File("D:/");
- String list[] = file.list();
- for (int i = 0; i < list.length; i++) {
- System.out.print(list[i]+" ");
- }
- }
- // 输出结果
- // ↓↓↓
- // $RECYCLE.BIN AppServ Baidu Config.Msi Foxmail 7.0 MyDrivers Program Files samples System Volume Information TDDownload test.txt WorkSpace 微云网盘
二、FilenameFilter
你总是希望能够限制由list( )方法返回的文件数目,使它仅返回那些与一定的文件名方式或者过滤(filter) 相匹配的文件
- //FFObj 是一个实现FilenameFilter 接口的类的对象。
- String[] list(FilenameFilter FFObj)
FilenameFilter 仅定义了一个方法,accept( ) 。该方法被列表中的每个文件调用一次
- boolean accept(File directory, String filename)
当被directory 指定的目录中的文件(也就是说,那些与filename 参数匹配的文件)包含在列表中时,accept( ) 方法返回true ,当这些文件没有包括在列表中时,accept( ) 返回false 。
- class EndWith implements FilenameFilter {
- private String str;
- /**
- * @param str
- * 文件后缀
- * */
- public EndWith(String str) {
- this.str = "." + str;
- }
- @Override
- public boolean accept(File dir, String name) {
- // TODO Auto-generated method stub
- return name.endsWith(str);
- }
- }
- public class Example {
- public static void main(String[] args) {
- File file = new File("D:/");
- // 返回后缀为txt的列表
- FilenameFilter filenameFilter = new EndWith("txt");
- String list[] = file.list(filenameFilter);
- for (int i = 0; i < list.length; i++) {
- System.out.print(list[i] + " ");
- }
- }
- // 输出结果
- // ↓↓↓
- // test.txt
- }
三、listFiles()方法
- 以File对象矩阵的形式返回文件列表,而不是用字符串形式返回
- //返回所有的文件
- File[] listFiles( )
- //返回满足指定FilenameFilter 接口的文件
- File[] listFiles(FilenameFilter FFObj)
- //返回满足指定FileFilter 的路径名的文件
- File[] listFiles(FileFilter FObj)
FileFilter 只定义了一个accept( ) 方法,该方法被列表中的每个文件调用一次
- boolean accept(File path)
- //如果文件被包括在列表中(即与path 参数匹配的文件),accept( ) 方法返回true ,如果不被包括,则返回false.
四、创建目录
mkdir( )方法创建了一个目录,创建成功返回true ,创建失败返回false。 创建失败是指File对象指定的目录已经存在,或者是因为整个路径不存在而不能创建目录。 |
用mkdirs( )的方法。它创建目录以及该目录所有的父目录。 |