题目
本期要说的是《2020年Java面试208题》的第16题,面试官提了这样一个问题:
请说说File类有哪些常用方法?
知识点剖析:
首先说File类是干什么的。File类是用来操作文件和目录的,这里注意,不仅仅是文件,也包括目录的操作File都提供了很多方法。比如创建、删除、重命名,都是可以的。但并不提供文件内容的操作,如果需要操作文件内容必须基于IO来实现。
File还有两个常量很有用,PathSeparator 和 speparator ,第一个常量是多个路径之间的分隔符,windows下是分号,第二个常量是路径中多层目录之间的分隔符,windows下是向右的斜杠。这俩常量可以保证程序在不同操作系统下可以自由的切换。
演示面试
好了,关于File类,只强调这两点,我现在来做演示面试:
你好,面试官。
File类是用来操作文件和目录的,主要功能有创建、删除、判断状态、获取文件信息、还有文件和目录遍历。
创建文件的方法有:
createNewFile:创建一个空文件,然后可以使用IO流向其中写内容。如果已经存在文件的话,则返回false,不会覆盖;如果不存在文件的话,则创建文件并返回true。
mkdir:新增文件夹,这个是新增单级文件夹。
mkdirs:新增多级文件夹,一般这个方法使用的更多一些。
renameTo:对文件重命名,如果是不同路径的话,就是文件剪切操作。
删除相关的方法:
delete:删除一个文件或一个空文件夹,如果不是空文件夹的话是不允许删除的。
deleteOnExit:这是当java程序退出的时候才删除。用来删除临时文件,比如我们createNewFile创建了一个临时文件,在最后程序运行结束后,肯定是要删除的,那么删除操作就比较麻烦了,因为那个时间点不好控制,但执行这个方法后,在java程序结束后就会自动删除这个临时文件。
判断相关的方法:
exists:判断文件或文件夹是否存在,这个使用非常频繁。
isFile:判断是否是一个文件。
isDirectory:判断是否是一个文件夹。
IsHidden:判断是否是隐藏的
isAbsolute:判断File的路径是否是绝对路径。
获取文件相关信息的方法:
getName:获取文件或文件夹的名称,并不包括路径
getAbsolutePath:获取文件的绝对路径,这个并不管文件是否存在,只是根据文件的路径描述转换为绝对路径形式。对应的还有getAbsoluteFile,这个就不赘述了。
length:获取文件的大小,就是字节数,返回long,长整型。文件不存在就返回为 0L。
getParent:获取父路径。
lastModified:获取文件最后修改时间。
文件和目录的遍历:
listRoots:列出根目录,在windows下就是所有的盘符。
list:列出文件夹下的所有文件和目录,返回值是子目录和文件的名称字符串数组,这个不会做层级遍历,只会列出直接下级的子目录和文件。类似的还有listFiles,就不再赘述了。
这个list方法还可以增加一个过滤文件名的参数,有了这个参数后只会返回符合条件的目录和文件名。
=========================================================
以上就是我的演示面试,不知道是否让你满意。
下期再见
我们下期再见。