Java之File类过滤器实现、功能方法等知识点

1.File类的概念

File类:用于得到一个路径对象,路径可分为相对路径和绝对路径。

相对路径:相对于某个位置下,只需要写相对位置下后的路径即可。

绝对路径:绝对路径是一个固定的路径,从盘符开始。

2.File类的构造方法:

①File(String pathname):根据一个路径得到File对象。

②File(String parent,String child):根据一个目录和一个子文件/目录得到File对象。

//分成两部分是为了方便进行操作。有时parent路径是固定的,但是child需要一直变,所以分成两部分操作方便。

③File(File parent,String child):根据一个父File对象和一个子文件/目录得到一个新的File对象。//同上,方便有更多操作

 注意:路径中的\要用\\格式,第一个代表转义字符,第二个代表\

3.File的创建功能:

①public boolean createNewFile():创建文件,如果存在这样的文件,就不创建并返回false,否则创建并返回true。

②public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建并返回false,否则创建并返回true。

③public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来并返回true,否则返回false。

注意:以上三种方法创建时若只填文件(夹)名则会创建在Java此项目的路径下,若填绝对路径则会根据绝对路径进行创建。

4.File的重命名和删除功能:

①public boolean renameTo(File dest):将文件重命名为指定的文件路径

注意:重命名时如果路径名相同是改名,如果路径名不同则是将此文件改名后并剪切到相应位置。

②public boolean delete():删除文件或文件夹。

注意:Java中的删除不走回收站,要删除一个文件夹,请注意该文件夹内不能包含文件和文件夹,否则删除失败。

5.File类的判断功能:

public boolean isDirectory():判断时否是目录(文件夹)。

public boolean isFile():判断是否是文件。

public boolean exists():判断是否存在。

public boolean canRead():判断是否可读。  //windows系统认为一切文件皆可读,所以即使用Java中的setReadable()方法设                                                                             置不可读,也没有用,文件一样可读。若在Linux系统下则根据设置变化而变化。

public boolean canWrite():判断是否可写。 //windows系统可以通过setWritable设置为不可写,这点跟设置是否可读有区别。

public boolean isHidden():判断是否隐藏。

6.File类的获取功能:

public String getAbsolutePath():获取绝对路径。

public String getPath():获取路径。   //获取构造方法中传入的路径

public String getName():获取名称。 //获取文件的名称

public long length():获取文件长度,字节数。

public long lastModified():获取最后一次的修改时间,毫秒值。

public String[ ] list():获取指定目录下的所有文件或者文件夹的名称数组。

public File[ ] listFiles():获取指定目录下的所有文件或者文件夹的File对象数组。

7.文件名称过滤器的实现:

①第一个图是Java中自带的list过滤器方法,具体实现需要创建一个过滤器类并且重写其accept这个判断方法

②第二个图是自写执行代码

执行结果:

解析:根据Java自带list的方法得知过滤执行步骤如下:

①首先是调用list的重载方法,获取当前文件对象内的所有文件名,得到一个数组names;

②判断此对象内文件个数是否为空和过滤器是否为空

③遍历names数组,每次都将当前文件对象和一个文件名传入accept判断方法,若返回值是true则此文件名符合要求加入数组,不符合则不操作。

④将List集合转成字符串数组并返回

觉得有用的小伙伴请点赞、评论或收藏一下多支持支持博主小弟,跪安~~

发布了40 篇原创文章 · 获赞 33 · 访问量 3454

猜你喜欢

转载自blog.csdn.net/qq_40275740/article/details/104089292