Java的File类

Java的File类:既可以当作目录/文件夹,也可以当作文件

说明用例: D:\\JAVA\\mybatis-generator\\serializable\\a.java(绝对路径'\',多加一个'\'代表转义),下面写法也一样,相对路径

文件 : File file  =  new  File("D:/JAVA/mybatis-generator/serializable/a.log");

目录/文件夹 :  File dir  =  new  File("D:/JAVA/mybatis-generator/serializable");

1. 访问文件名相关的方法

String getName() :返回此File对象所表示的文件名或路径名(如果时路径,返回最后一级子路径名)

文件: a.java

文件夹: serializable

String getPath() : 返回此File对象所对应的路径名

文件: D:\JAVA\mybatis-generator\serializable\a.java

File getAbsoluteFile() : 返回此File对象的绝对路径

文件: D:\JAVA\mybatis-generator\serializable\a.java

String getAbsolutePath() : 返回此File对象的绝对路径名

文件: D:\JAVA\mybatis-generator\serializable\a.java

String getParent() : 返回此File对象所对应目录 (最后一级子目录) 的父目录名

文件: D:\JAVA\mybatis-generator\serializable\a.java

boolean renameTo(File newName) : 重命名此File对象所对应的文件合伙目录,如果重命名成功,返回true,失败返回false

重命名文件 : file.renmaTo( new File("D:\\A.java")); ---> 源文件的原有名字和路径都改变

2. 文件检测相关方法

boolean exists() : 判断File对象所对应的文件或目录是否存在

文件: file.exists() --->true

boolean canWrite(): 判断File对象所对应的文件或目录是否可写

文件: file.canWrite() --->true

boolean canRead() : 判断File对象所对应的文件或目录是否可读

文件: file.canRead() --->true

boolean isFile() : 判断File对象所对应的是否是文件,而不是目录

文件: file.isFile() --->true

boolean isDirectory() : 判断File对象所对应的是否是目录,而不是文件

文件: file.isDirectory() --->false

boolean isAbsolute() : 判断File对象所对应的文件或目录是否是绝对路径

文件: file.isAbsolute() --->true

 

3.获取常规文件信息

long  lastModified() : 返回文件的最后修改时间

long length() : 返回文件内容的长度

 

4.文件操作相关的方法

boolean createNewFile() : 当此File对象所对应的文件不存在时,将会创建一个该File对象所指的的新文件,创建成功返回true,否则返回false

boolean delete() : 删除File对象所对应的文件或路径

static File createTempFile(String prefix,String suffix) : 在默认的临时目录/文件夹中创建一个临时的空文件,文件名=prefix + 系统随机数+ suffix

prefix参数的长度>=3字节长,如"hjb","mail",suffix的参数可以为null,在这种情况下,将使用默认的后缀".tmp"

static File createTempFile(String prefix,String suffix,File directory) : 在directory所指定的目录/文件夹中创建一个临时的空文件,文件名=prefix + 系统随机数+ suffix

5. 目录/文件夹操作相关的方法

boolean mkdir() : 创建一个File对象所对应的目录/文件夹,创建成功返回true,否值返回false,注意:File对象是一个目录/文件夹,不是文件

String[] list() : 列出File对象的所有子文件名和目录名,就是当前File对象对应的目录下的所有儿子

File[ ]  listFiles() : 列出File对象的所有子文件名和目录名,返回 File数组

 

常见面试题: 给定一个目录,1. 打印该目录下所有的子目录/文件夹和文件  2. 找出该目录里的文件名为 user.java的文件

 

思路: 给定的目录下,很可能会有子文件夹,子文件夹又有子文件夹........所以需要,实现FilenameFilter接口,重写accept()方法 还要依靠递归调用实现

代码:

 

 

思路2:使用JDK1.8里的 Files工具类方法walkFileTree( Path start, FileVisitor<? super Path> visitor):遍历start路径下所有的文件和子目录,遍历文件和子目录时都会触发FileVisitor中的相应的方法

代码:

 

 

posted @ 2019-06-19 18:33  漱芳斋  阅读(312)  评论(0)    收藏  举报