Java高级学习-File类

网友投稿 734 2022-05-29

文章目录

构造方法

方法

判断功能

创建删除

目录遍历

递归

文件过滤器

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则进行返回回去路径

Java高级学习-File类

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 );

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:震惊,python二级真题答案流出
下一篇:大学生学单片机怎么入门?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~