Java高级学习-File类

举报
AAAI 发表于 2021/04/18 01:08:52 2021/04/18
【摘要】 文章目录 构造方法方法判断功能创建删除 目录遍历 递归文件过滤器 java.io.File类,对文件和文件夹进行操作。 directory:文件夹/目录;path:路径 pathSeparator 与系统相关的路径分隔符 pathSeparatorChar win:; linux:: separator 与系统相关默认名称分隔符 separ...

java.io.File类,对文件和文件夹进行操作。

directory:文件夹/目录;path:路径

pathSeparator 与系统相关的路径分隔符 pathSeparatorChar win:; linux::

separator 与系统相关默认名称分隔符 separatorChar win:\ linux:/

绝对路径:一个完整路径

相对路径:一个简化路径,当前项目的根目录

注意:路径不区分大小写,\是转移字符,\代表一个普通的反斜杠

构造方法

File( String pathname) 通过将给定路径名字符串转化为抽象路径名来创建一个新File实例。 路径pathname 可以不存在

File(String parent, String child ) pathname = parent 父路径 + child 子路径

File(File parent, String child ),使用File的方法对路径进行操作,再使用路径创建对象。

方法

public String getAbsolutePath( ) : 返回此File的绝对路径名字符串。

public String getPath( ) :将此File转换为路径名字符串,相对或者绝对路径。

public String getName( ):返回由此File表示的文件或者目录名称。路径结尾

public String length() : 返回由此File表示的文件的长度/大小。以字节为单位,文件夹不能获取大小(linux文件夹有大小),路径不存在返回0。

String toString() :打印路径

判断功能

public boolean exists( ) :此File表示的文件或者目录是否存在,判断构造方法中的路径是否存在。

public boolean isDirectory ( ) :此File是否为目录。判断构造方法中的路径是否以文件夹结尾。路径不存在返回false。

public boolean isFile ( ) :此File是否为目录文件。判断构造方法中的路径是否以文件结尾。路径不存在返回false。

创建删除

public boolean createNewFile( ) :当具有该名称文件不存在时,创建一个新的空文件。创建文件的路径和名称在构造方法中给出,只能创建文件,文件夹不能创建,且路径必须存在。

createNewFile声明了抛出了IOException,需要throws

public boolean delete( ) :删除由此File表示的文件或者目录。硬盘删除。

public boolean mkdir( ) :创建由此File表示的目录。创建单级文件夹,只能创建文件夹,不能创建文件

public boolean mkdirs( ) :创建由此File表示的目录。包括任何必须或者不存在的父目录。创建单级/多级文件夹,只能创建文件夹,不能创建文件

目录遍历

public String[ ] list( ):返回一个String数组,表示该File目录中的所有子文件或目录。路径不能带文件,可以获得隐藏文件夹。打印会打印子目录。

public File[ ] listFiles( ):返回一个File数组,表示该File目录中的所有子文件或目录。打印会打印子目录路径。

list方法和listFiles方法遍历的是构造方法给出的目录,如果构造方法中给出的目录不存在,会抛出空指针异常,如果构造方法中给出的不是目录,也会抛出空指针异常(NullPointerException)。

递归

直接递归,间接递归

要保证递归能够停下来且递归次数不能太多,负责会发生栈内存溢出(StackOverflowError)。

构造方法,禁止递归

内存中有多个递归方法,效率低下

文件过滤器

FileFilter接口

boolean accept(File pathname):File pathname:使用ListFiles遍历目录,得到每一个文件对象

File[ ] listFiles( FilenameFilter filter)

File dir ; File[ ] files = dir.listFiles( new FileFilter实现类)

在实现类里进行方法重写accept方法,返回true则进行返回回去路径

boolean accept(File dir , String name):测试指定文件是否应该包含在某一文件列表中。String name:使用ListFiles遍历目录,得到每一个文件/文件夹名称

两个过滤器没有实现类,需要自己进行写实现类,重写acceot方法,在方法中自己定义过滤规则。

File[ ] files = dir.listFiles( ( File d, String name) ->{

return new File(d,name).isDirectory );

});

上述的简化lambda:

File[ ] files = dir.listFiles( ( d , name) -> new File(d,name).isDirectory );

文章来源: blog.csdn.net,作者:αβγθ,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_38022166/article/details/115412806

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200