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集合转成字符串数组并返回
觉得有用的小伙伴请点赞、评论或收藏一下多支持支持博主小弟,跪安~~