美文网首页
【Java进阶营】Java 基础(三)| IO流之使用 File

【Java进阶营】Java 基础(三)| IO流之使用 File

作者: 梦幻小孩斋 | 来源:发表于2022-05-02 01:32 被阅读0次

    一、什么是 File 类?
    java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。

    二、File 类的使用
    2.1 构造方法
    File 类的构造有三种:

    public File(String pathname) : 直接通过文件路径字符串创建
    public File(String parent, String child) : 通过父和子路径字符串创建

    public File(File parent, String child) : 先创建父级 file 对象,再结合子路径创建

    image

    三种创建 File 对象的方法如上所示,此外需要说明的是:一个 File 对象代表硬盘中的目录或者文件,而这个目录或文件在硬盘中是否存在不影响 File 对象的创建。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

    2.2 获取功能的方法
    public String getAbsolutePath() :返回指定 File 实例的绝对路径
    public String getPath() :将指定 File 实例的抽象路径名转换为一个路径名字符串
    public String getName() :返回指定 File 实例的目录或文件名
    public long length() :返回指定 File 实例的文件长度

    在硬盘 Z:\file 下,新建一个 file.txt 文件,文件内容是 26 个英文字母。

    image

    File 的 get 方法如上示例,值得注意的是:getPath () 与 getAbsolutePath () 的区别在于,前者获取的是构造 File 实例时的路径,后者获取的是 File 实例的绝对路径。当构造 File 实例的路径也是绝对路径时,二者是一样的。

    2.3 绝对路径与相对路径
    绝对路径:从盘符开始的完整路径

    相对路径:相对于你当前的项目目录的路径,在开发中常用此路径

    image

    2.4 判断功能的方法
    判断功能的方法主要有三个,输出都是布尔值:

    public boolean exists() :指定 File 实例代表的文件或者目录是否存在
    public boolean isDirectory() :指定 File 实例是不是目录

    public boolean isFile() :指定 File 实例是不是文件

    image

    2.5 创建与删除方法
    public boolean createNewFile() :指定 File 实例的文件不存在时,创建空文件

    public boolean delete() :删除指定 File 实例表示的文件或目录
    public boolean mkdir() :创建指定 File 实例表示的目录

    public boolean mkdirs() :创建指定 File 实例表示的目录,以及父目录

    image

    2.6 目录的遍历
    public String[] list() :返回一个 String 数组,表示指定 File 实例目录中的所有子文件或目录。
    public File[] listFiles() :返回一个 File 数组,表示指定 File 实例目录中的所有的子文件或目录。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

    image

    值得注意的是:不管是 list () 还是 listFiles () 方法,所指定的 File 实例都必须是在硬盘中实际存在的,否则无法遍历。

    三、递归
    3.1 什么是递归?
    指的是程序在某个方法内自己调用自己的操作。

    3.2 递归的分类
    递归分为两种:

    直接递归:称为方法自身调用自己。
    间接递归:可以 A 方法调用 B 方法,B 方法调用 C 方法,C 方法调用 A 方法。
    3.3 递归的使用规范
    递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出
    在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出
    构造方法,禁止递归
    四、递归的使用
    如果你不知道什么时候使用递归?那这里有一条很简单的定律:当你明确递归次数不至于造成内存溢出是,可使用;否则,不要使用。

    递归有很多的使用场景,比如递归求和,递归阶乘。而递归多级目录、遍历文件、搜索文件是我们在开发中常用的,它是这么实现的:


    image

    相关文章

      网友评论

          本文标题:【Java进阶营】Java 基础(三)| IO流之使用 File

          本文链接:https://www.haomeiwen.com/subject/skwyyrtx.html