day008-File文件

时间:2023-03-09 19:42:53
day008-File文件

1、 File

  文件和目录路径名的抽象表示形式。

  一个File类对象就代表了一个文件或文件夹。

day008-File文件day008-File文件

  1.1 File类的作用

    用来操作硬盘上的文件或文件夹

    绝对路径:一般是以盘符开始的,比如:C:/Java/aaa.png。特点:在系统中具有唯一性。

    相对路径:相对于某个位置而言,比如:java/bbb.png。特点:在系统中不具有唯一性

在java中,默认的相对位置是当前项目的根目录

  1.2 File 类常用构造方法

    public File​(String pathname)   //根据文件名创建文件

    public File​(String parent,String child)   //根据父路径字符串和子路径字符串创建文件对象

    public File​(File parent,String child)   // 从父抽象路径名和子路径名字符串创建新的 File实例。


  1.3 路径分隔符、名称分隔符

    1.3.1 路径分隔符

    public static final String pathSeparator  //与系统相关的路径分隔符字符

    不同的操作系统有不同的路径分隔符:

      Mac和Linux是 :

      Windows是   ;

    1.3.2 名称分隔符

    public static final String separator   //与系统相关的名称分隔符字符

      Mac和Linux是 /

      Windows是   \

      JDK 1.5后,Windows用\来表示路径分隔符都可以

  1.4跟获取相关方法

    public String getAbsolutePath​()         获得绝对路径

    public String getPath​()             获得创建文件对象的指定的文件路径名字符串

    public String getName​()          获取文件名

    public long length​()                 获取文件的大小,单位为字节。如果关联路径的文件不存在,返回为零。只能获得文件的大小,不能获取文件夹的值。

                      获取文件夹的的返回值就是一个垃圾值。

    public File getParentFile​()        获得父路径文件对象

  

  1.5跟判断相关方法

    public boolean exists​()           判断文件是否存在

  public boolean isDirectory​()        判断文件是否是目录

    public boolean isFile​()            判断文件是否是普通文件

  1.6跟创建和删除相关方法

     public boolean createNewFile​() //创建文件,创建成功返回true,如果创建成功,返回true。如果文件存在,则什么也不发生,返回false
        public boolean mkdir​()       //创建单级文件夹。创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
        public boolean delete​()      //删除文件和文件夹,如果是文件夹,只能删除空文件夹
        public boolean mkdirs​()      //创建多级文件夹. 创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
 

1.7遍历目录相关

  public String[] list​()       返回一个字符串数组,表示该File目录中的所有子文件或目录

  public File[] listFiles​()     获取文件夹下的所有文件(子文件夹和普通文件),返回文件对象数组

2. 递归

                 day008-File文件

2.1什么是递归?方法自身调用方法自身。

     例子:递归求阶乘

      • 阶乘:所有小于及等于该数的正整数的积。
      • n的阶乘:n! = n * (n-1) * (n-2) * ... * 3 * 2 * 1          

day008-File文件

递归分类:

直接递归:方法A调用方法A

间接递归:方法A调用方法B,方法B调用方法C,方法C调用方法A

       2.2递归的注意事项:

              递归必须要有出口:结束递归的条件

3. Filter文件过滤器

FileFilter是一个接口,只要是实现了该接口的实现类对象就是一个文件过滤器。

  3. 1 File类与文件过滤器相关的方法

    public File[] listFiles​(FileFilter filter)

    accept方法的调用时机:

    每当获取到文件夹下的每一个文件或子文件夹时,都会将该文件或文件夹封装成File对象,然后将该File 对象作为参数调用文件过滤器的access方法。

    Access方法返回值的作用;

    返回false,代表传递过来的文件需要过滤掉

    返回true,代表接受文件

4. 补充知识点

Scanner类的next方法nexLine方法的不同点比较:

  a)next/nextInt/nextDouble

    扫描结束的标记是回车、tab键、空格

    在扫描到第一个有效字符之前会自动过滤掉结束标记符:回车、tab键、空格

    不会过滤掉扫描结束的回车

  b)nextLine

    扫描结束标记标记是回车,会过滤扫描结束的回车符