Java高级学习-File类
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
- 点赞
- 收藏
- 关注作者
评论(0)