A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tianhaolin 初级黑马   /  2018-11-26 15:12  /  686 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、File类
1.File类概述
  java.in.File是文件和目录名的抽象表示,主要用于文件和目录的创建、查找和删除等操作
2.File类的方法
  1)File类把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作
    *创建一个文件/文件夹
    *删除文件/文件夹
    *获取文件/文件夹
    *判断文件/文件夹是否存在
    *对文件夹进行遍历
    *获取文件的大小
  2)静态成员变量
    *pathSepartor:与系统有关的路径分隔符(windows系统是";",linux系统是":")
        *separator:与系统有关的文件名称分隔符(windows系统是"\",linus系统是"/");
        *操作路径写法:
           C:\develop\a.txt (windows系统)
           C:/develop/a.txt(linus系统)
           java写法:"C:" + File.Seperator + "develop" +File.Seperator + "a.txt";
        *路径:
           绝对路径:是一个完整的路径,以盘符(C:\D:)开始的路径
           相对路径:是一个简化的路径,是相对于当前项目的根目录
        *注意:
           路径是不区分大小写的
           路径中的文件名称分隔符,在windows使用反斜杠,反斜杠是转义字符,两个\\等于一个真正的\
  3)File类的构造方法
    *File(String pathname)
           路径可以是以文件结尾,也可以是以文件夹结尾
           路径可以是相对路径,也可以是绝对路径
           路径可以存在,也可以不存在(创建File对象只是把字符串的路径封装为File对象,不考虑路径的真假情况)
    *File(String parent,String child)
           把路径分为两个部分,使用灵活
    *File(File parent,String child)
           父路径是File类型,可以使用File类的方法,对路径进行一些操作
  4)File类获取功能的方法
    *public String getAbsolutPath():返回File的绝对路径名字符串
    *public String getPath():将此File转换为路径名字符串(不管是绝对还是相对路径)
    *public String getName():返回由此File表示的文件或目录名称(结尾部分)
    *public long length():返回由此File表示的文件的大小(注意不是长度)
           **注意:大小以字节为单位
                    不能以文件夹结尾
                    如果文件路径为假,返回0
  5)File类判断功能的方法
    *public boolean exists():判断此File表示的文件或目录是否实际存在
    *public boolean isDirectory():判断此File表示的是否为目录
    *public boolean isFile():判断此File表示的是否为文件
  6)File类创建删除功能的方法
    *public boolean creatNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件.
    *public boolean delete():删除由此File表示的文件或目录
    *public boolean mkdir():创建由此File表示的目录
    *public boolean mkdirs():创建由此File表示的目录,包括任何必须但不存在的父目录
  7)目录的遍历
    *public String[] list():返回一个String数组,表示该File目录中的所有子文件或目录
    *public File[] listFiles():返回值是一个File数组,表示该File目录中的所有子文件或目录
        注意:
          list方法和listFile方法遍历的是构造方法中给出的目录
          如果路径不存在,会抛出空指针异常
          如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
3.FileFilter文件过滤器
    1)listFiles有两个重载的方法:
        *public File[] listFiles(FileFilter fileFilter)
           FileFilter:用于抽象路径名的过滤器
                  作用:用来过滤文件(File对象)
                  抽象方法:boolean accept(File pathname)
                      测试指定抽象路径名是否应该包含在某个路径名列表中
                  参数:File dir:构造方法中传递的被遍历的目录
                      File path:使用ListFile方法遍历目录,得到每一个文件对象
        *public File[] listFiles(FilenameFilter filenameFilter)
               FilenameFilter:用于过滤文件名的过滤器
              作用:用来过滤文件名称
                  抽象方法:boolean accept(File dir,String name)
                      测试指定文件是否应该包含在某个路径名列表中
                  参数:File dir:构造方法中传递的被遍历的目录
                       String name:使用ListFile方法遍历目录,获取每一个文件/文件夹的名称
        *注意:两个过滤器接口是没有实现类的,需要我们自己写实现类,重写过滤的方法accept,在方法中自己定义实现规则
        2)FileFilter
          *过滤器中的accept方法是谁调用的
          *accept方法的参数pathname是什么?
              listFiles方法会对构造方法中参数传递的目录进行遍历,根据目录中的每一个文件/文件夹封装为file对象
              listFiles方法会调用参数传递的过滤器中的方法accept
              listFiles方法会把遍历得到的每一个File对象,传递给accept方法的参数pathname
                    如果返回值为true就把封装的File对象返回到数组中
                        
二、递归
1.递归的分类:
    1)直接递归:方法直接调用自己
    2)间接递归:A方法调用B方法,B方法调用C方法,C方法调用A方法
    3)注意事项:
          *递归一定要有条件限定,保证递归能够停止,否则会发生栈内存溢出
          *递归中虽然有限定条件,但递归的次数不能太多,否则也会发生占内存溢出
          *构造方法禁止递归
2.递归的使用前提:
          当调用方法的时候,方法的主体不变,每次调用方法的参数不同
3.使用递归必须明确的问题
          *递归的结束条件
          *递归的目的
         
   

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马