• 12-IO流1-File类、绝(相)对路径、


    0.IO流和File类

    在这里插入图片描述

    在这里插入图片描述

    1.File类

    学习一个类一般从构造方法开始学

    1.1File类概述和构造方法【应用】

    • File类介绍

      • 它是文件和目录路径名的抽象表示
      • 文件和目录是可以通过File封装成对象的
      • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的
    • File类的构造方法

      方法名说明
      File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
      File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例
      File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例
    • 示例代码

        public static void main(String[] args) {
            // File(String pathname)  通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
            String path="c:/whu/a.txt";
            File file=new File(path);//封装从File对象才能使用File类中的方法来操作文件
    
            // File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的File实例
            String path1="c:/whu";
            String filename="a.txt";
            File file1 = new File(path1, filename);//就是把两个路径拼接了一下
            System.out.println(file1);//"c:\whu\a.txt"
    
            // File(File parent, String child)   | 从父抽象路径名和子路径名字符串创建新的File实例
            File file2 = new File("c:/whu");
            String filename2="a.txt";
            File file3=new File(file2,filename2);//File和String的拼接
            System.out.println(file3);//"c:\whu\a.txt"
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    1.2绝对路径和相对路径【理解】

    • 绝对路径

      是一个完整的路径,从盘符开始

    • 相对路径

      是一个简化的路径,相对当前项目下的路径

    • 示例代码

        public static void main(String[] args) {
            //绝对路径:这个路径固定不变了
            File file=new File("D:/whu/a.txt");
    
            //相对路径:路径其实是可以变化的(相对当前项目)(模块比项目小一级)
            //当前项目下的a.txt
            File file1 = new File("a.txt");//与本模块文件夹同级(也即在filemodule文件夹父目录下)
            //当前模块下的a.txt
            File file2 = new File("filemodule/a.txt");//当前module名为"filemodule"
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    1.3File类创建功能【应用】(创建目录和文件)

    • 方法分类

      方法名说明
      public boolean createNewFile()当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
      public boolean mkdir()创建由此抽象路径名命名的目录 (创建一个单级文件夹)
      public boolean mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录(创建一个多级文件夹)

    示例代码1:createNewFile

    public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件 |
    .
    文件不存在创建成功返回true、文件已经存在创建失败返回false
    createNewFile方法只能创建文件不能创建目录

        public static void main(String[] args) throws IOException {
            // 1. public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
                //1.1 文件存在,创建失败,返回false
                //1.2 文件不存在,创建成功,返回true
                //1.3 createNewFile方法不管路径有没有后缀名,只能创建文件
            File file1 = new File("c:/whu/a.txt");//注意创建前 真有这个文件的存在
            boolean result1 = file1.createNewFile();
            System.out.println(result1);//false     删除该文件再运行:true
    
            //尝试创建目录 net
            System.out.println(new File("c:/whu/net").createNewFile());//true   一查看是创建了一个没有后缀名的文件net
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 示例代码2:mkdir (没啥用,全部用mkdirs就好,简单了解一下就好了)

    mkdir 创建一个单级文件夹
    new File(“c:/whu/net”).mkdir(); 其直接上级目录whu下有普通文件存在时可能创建失败(有空目录时没事)
    注意:1.只能创建单级文件夹,不能创建多级文件夹、2.不管路径最后有没有后缀名,只能创建目录,不能创建文件

        public static void main(String[] args) throws IOException {
            // public boolean mkdir()  创建一个单级文件夹
                //注意:
                //1.只能创建单级文件夹,不能创建多级文件夹
                //2.不管路径最后有没有后缀名,只能创建目录,不能创建文件
            File file = new File("c:/whu/net/software/java");
            boolean result = file.mkdir();
            System.out.println(result);//false 只能创建单级文件夹,上面路径只有whu目录存在,属于多级目录创建
    
            file = new File("c:/whu/net");
            System.out.println(file.mkdir());//true  whu目录必须是个空目录才返回true
    
            file = new File("c:/whu/aa.txt");
            System.out.println(file.mkdir());//true        创建文件夹"aa.txt"          (whu目录下可以有空目录)
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    示例代码3:mkdirs

    mkdirs 创建一个多级文件夹、也可以创建单级文件夹(先调用mkdir试试)
    只能创建目录,不能创建文件(不管有没有写后缀名)

        public static void main(String[] args) throws IOException {
            // public boolean mkdirs() 创建一个多级文件夹
                //注意:
                //1. 可以创建单级文件夹,也可以创建多级文件夹
                //2. 不管路径最后有无后缀名,都只能创建文件夹(无法创建文件)
            File file = new File("c:/whu/net/software/java");
            boolean result = file.mkdirs();
            System.out.println(result);//true 多级目录创建成功
    
            System.out.println(new File("c:/whu/net2").mkdirs());//true   单级目录也能创建
            System.out.println(new File("c:/whu/bb.txt").mkdirs());//true  只能创建目录bb.txt  无法创建文件
    
            //mkdir了解下,没啥用   mkdirs也是会先去调用mkdir失败再执行新逻辑
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述
    在这里插入图片描述

    查看源码:
    在这里插入图片描述

    1.4File类删除功能【应用】

    • 方法分类

      方法名说明
      public boolean delete()删除由此抽象路径名表示的文件或目录
    • 示例代码

    1. 彻底删除,不走回收站
    2. 删除文件时直接删除单个文件
      删除目录时,只能删除空目录
    3. 若想删除非空目录,则只得先删除该目录下的所有内容,再删除剩下的空目录
      .
      一句话:delete()方法只能删除文件或空目录
        public static void main(String[] args) throws IOException {
            //注意点:
                //1. 彻底删除,不走回收站
                //2. 删除文件时直接删除单个文件
                //   删除目录时,只能删除空目录
                //3. 若想删除非空目录,则只得先删除该目录下的所有内容,再删除剩下的空目录
                    //一句话:delete()方法只能删除文件或空目录
    
            //a、删除文件
            File file = new File("C:/whu/a.txt");//a.txt文件存在
            boolean result = file.delete();
            System.out.println(result);//true
    
            //b、删除目录
            file = new File("C:/whu");//whu目录存在
            System.out.println(file.delete());//whu目录非空:false     whu目录为空:true
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    攻防世界-unseping
    设置电脑定时关机
    10、【Qlib】【主要组件】高频交易嵌套决策执行框架
    Spire.Office for .NET 7.9.0 update
    但因热爱,愿迎万难,OpenTiny 社区增加一枚前端程序媛贡献者
    mysql获取近7天,7周,7月,7年日期,根据当前时间获取近7天,7周,7月,7年日期
    Java面向对象程序设计期末题库(选择题)
    Spring Security学习笔记(一)Spring Security架构原理
    AIGC之文本内容生成概述(下)—— GPT
    前端进击笔记第九节 HTTP 协议和前端开发有什么关系?
  • 原文地址:https://blog.csdn.net/hza419763578/article/details/125524111