Java File入门

Java File入门


Java IO编程系列请跳转---Java IO编程 ​​​​​​​

File创建

构造方法
    * File(String pathname):根据一个路径得到File对象
    * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
    * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

创建功能
    * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
    * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
    * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来                                                                            注:默认在项目路径下创建文件。

重命名和删除功能
    * public boolean renameTo(File dest):把文件重命名为指定的文件路径
    * public boolean delete():删除文件或者文件夹                                                                                                                                删除注意事项:
               * Java中的删除不走回收站(无法找回)。
               * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹


File常用API

判断功能
    * public boolean isDirectory():判断是否是目录
    * public boolean isFile():判断是否是文件
    * public boolean exists():判断是否存在
    * public boolean canRead():判断是否可读
    * public boolean canWrite():判断是否可写
    * public boolean isHidden():判断是否隐藏

获取功能
    * public String getAbsolutePath():获取绝对路径
    * public String getPath():获取路径
    * public String getName():获取名称
    * public long length():获取长度。字节数
    * public long lastModified():获取最后一次的修改时间,毫秒值
    * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
    * public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组 


实战一:File过滤器

文件名称过滤器的概述
    * public String[] list(FilenameFilter filter)
    * public File[] listFiles(FileFilter filter)
文件名称过滤器的使用
    * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
源码分析
    * 带文件名称过滤器的list()方法的源码

实现代码及测试如下:

Java File入门_第1张图片

Filter源码分析 

这里以 public File[] listFiles(FileFilter filter)为例,在listFiles方法中传入filter对象来实现FileFilter接口类,从下图源码中我们发现,在listFiles中通过filter.accept()来取得我们传入的filter的accept方法,而在if条件下过滤出符合要求的file文件。

Java File入门_第2张图片

 

实战二:打印出指定文件夹下所有的.java文件名(递归)

思路:

  1. 键盘录入文件夹路径
  2. 判断录入文件夹路径有效性
  3. 递归遍历整个文件夹,满足后缀为.java就打印出来

代码及运行结果如下:

Java File入门_第3张图片


Java IO编程系列请跳转---Java IO编程 

                                                            谢谢阅读                           ----知飞翀

你可能感兴趣的:(JavaSE学习笔记)