java漱_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的文件

639132728ff766c472e18ddb0abedd60.png

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

代码:

dcb1a537578a3fd521142899de5829ca.png

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

5390cfc1cd929c9ab0cf2509f65be273.png

代码:

59f15917faa854c28bf07197f000bcbb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值