• Java之IO简述 第一篇——File类


    文章目录

    前言

    Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。 I input O out
    在这里插入图片描述

    下面介绍IO下的重要类之一 File

    File类

    注意设计文件的读写删除,请大家谨慎测试,比如使用delete删除的文件是无法在回收站进行找回的

    File表示文件,是java中文件和路径名的抽象表示

    构造方法

    文件类型(File)的创建
    注意:只是创建出文件对象,不是直接生成对应的文件!!!
    需要生成对应文件的话需要使用使用文件生成方法 createNewFile()

    1、public File(String pathname)
    通过将给定的路径名的字符串转换成一个抽象路径名创建一个新的 File实例
    
    2、public File(String parent,String child)
    创建从父路径名的字符串和一个孩子的一个新的 File实例文件
    
    3、public File(File parent,String child)
    创建从一个家长的抽象路径名和一个孩子的路径字符串的新 File实例。
        
    2 和 3都是从上级目录下创建一个File类实例, 2中的上级目录类型为String,即代表绝对路径, 3的为File类型,即代表抽象路径
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    常用方法

    createNewFile()
    public boolean createNewFile() throws IOException
    true如果指定的文件不存在,创建成功; false如果指定的文件已经存在
    
    • 1
    • 2
    File file = new File("D://test.txt");
    boolean newFile = file.createNewFile();
    System.out.println(newFile ? "创建文件成功!":"创建文件失败!");
    
    • 1
    • 2
    • 3

    image-20220426174141288

    image-20220426174342779

    再次运行则失败,因为文件已经存在

    image-20220426174319655

    可能存在的异常

    当读写路径为C盘下的时候,可能会出现Exception in thread “main” java.io.IOException。这个异常,是因为电脑管家或者安全卫士开起来保护,导致C盘拒绝访问,可以尝试使用管理员的身份去运行该文件或更换路径到D盘

    image-20220426174855773

    mkdir()

    public boolean mkdir()
    创建该抽象名对应的目录

    File file = new File("C://test.txt");
    boolean newFile = file.mkdir();
    System.out.println(newFile ? "创建文件夹成功!":"创建文件夹失败!");
    
    • 1
    • 2
    • 3

    image-20220426175803719

    mkdirs()

    public boolean mkdirs()
    创建该目录下的抽象路径名命名,包括任何必要的但不存在父目录。请注意,如果此操作失败,它可能已经成功地创建了一些必要的父目录

    File file = new File("C://1//2//3");
    boolean newFile = file.mkdirs();
    System.out.println(newFile ? "创建文件夹成功!":"创建文件夹失败!");
    
    • 1
    • 2
    • 3

    image-20220426175952954

    delete()

    public boolean delete()
    删除文件或目录的路径名表示的抽象。如果这个路径表示目录,然后目录必须为空删除。

    File file = new File("D://test.txt");
    boolean res = file.delete();
    System.out.println(res ? "删除文件成功!":"删除文件失败!");
    
    • 1
    • 2
    • 3

    image-20220426175132038

    image-20220426175315210

    getAbsoluteFile()

    public File getAbsoluteFile()
    返回此抽象路径名的绝对形式。相当于 new File(this.getAbsolutePath())。 看不懂的看栗子以及截图

    File file = new File("D://test.txt");
        boolean newFile = file.createNewFile();
        System.out.println(newFile ? "创建文件成功!":"创建文件失败!");
        File absoluteFile = file.getAbsoluteFile();
        System.out.println(file.equals(absoluteFile));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20220426180545835

    getAbsolutePath()

    public String getAbsolutePath()
    返回此抽象路径名的绝对路径名的字符串。

    File file = new File("D://test.txt");
    boolean newFile = file.createNewFile();
    System.out.println(file.getAbsolutePath());
    
    • 1
    • 2
    • 3

    image-20220426180846982

    getPath()

    public String getPath()
    获取这个抽象路径名为路径名的字符串

    //创建目录
    File dir = new File("D://1//2//3");
    dir.mkdir();
    //创建文件
    File file = new File(dir,"test123.txt");
    System.out.println(file.getPath());
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    getName()

    public String getName()
    返回的名称的文件或目录的路径名表示的抽象。这是最后的名字在路径名的名字序列。如果路径名的名字序列为空,则返回空字符串。

    File file = new File("D://test.txt");
    boolean newFile = file.createNewFile();
    System.out.println("name->"+file.getName());
    
    • 1
    • 2
    • 3

    image-20220426181412536

    getParent()

    public String getParent()
    返回此抽象路径名的父路径名的字符串,或 null如果路径名不叫父目录。

    File file = new File("D://test.txt");
    boolean newFile = file.createNewFile();
    System.out.println("父级目录是->"+file.getParent());
    
    • 1
    • 2
    • 3

    image-20220426181800659

    getParentFile()
    //创建目录
    File dir = new File("D://mytestdir");
    dir.mkdir();
    //创建文件
    File file = new File(dir,"test123.txt");
    boolean newFile = file.createNewFile();
    System.out.println("父级File是->"+file.getParentFile());
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220426182124672

    isDirectory()

    isDirectory()
    测试文件是否通过这种抽象路径名表示是一个目录。

    //创建目录
    File dir = new File("D://1//2//3");
    boolean mkdir = dir.mkdirs();
    //创建文件
    File file = new File(dir,"test123.txt");
    
    System.out.println(dir.isDirectory() ? "dir是一个文件夹!":"dir不是一个文件夹!");
    System.out.println(file.isDirectory() ? "file是一个文件夹!":"file不是一个文件夹!");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image-20220426183418766

    isFile()

    isFile()
    测试文件是否通过这种抽象路径名表示的是一种正常的文件。(非目录)

    //创建目录
    File dir = new File("D://1//2//3");
     dir.mkdirs();
    //创建文件
    File file = new File(dir,"test123.txt");
    file.createNewFile();
    
    System.out.println(dir.isFile() ? "dir是一个文件!":"dir不是一个文件!");
    System.out.println(file.isFile() ? "file是一个文件!":"file不是一个文件!");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    image-20220426184518250

    length()

    length()
    返回文件的抽象路径名表示的长度

    //创建目录
    File dir = new File("D://1//2//3");
     dir.mkdirs();
    //创建文件
    File file = new File(dir,"test123.txt");
    file.createNewFile();
    
    System.out.println(file.length());
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image-20220426184718167

    list()

    list()
    返回的字符串在该目录下的抽象路径名的文件和目录命名为数组。

    //创建目录
    File dir = new File("D://1//2//3");
     dir.mkdirs();
    //创建文件 位于同一级目录下
    File file = new File(dir,"test1.txt");
    File file1 = new File(dir,"test2.txt");
    File file2 = new File(dir,"test3.txt");
    File file3 = new File(dir,"test4.txt");
    file.createNewFile();
    file1.createNewFile();
    file2.createNewFile();
    file3.createNewFile();
    
    String[] list = dir.list();
    for (String s : list) {
        System.out.println(s);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    image-20220426185406249

    listFiles()
    //创建目录
        File dir = new File("D://1//2//3");
         dir.mkdirs();
        //创建文件 位于同一级目录下
        File file = new File(dir,"test1.txt");
        File file1 = new File(dir,"test2.txt");
        File file2 = new File(dir,"test3.txt");
        File file3 = new File(dir,"test4.txt");
        file.createNewFile();
        file1.createNewFile();
        file2.createNewFile();
        file3.createNewFile();
    
        File[] files = dir.listFiles();
        for (File f : files) {
            System.out.println(f);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    renameTo(File dest)

    renameTo(File dest)
    将一个文件剪切复制到另一个位置后重命名

    File oldfile = new File("D:\2\old.txt");
    File newfile = new File("D:\1
    
    • 1
    • 2

    ew.txt");
    oldfile.renameTo(newfile);

    image-20220426190128630

    好啦,以上就是关于IO的第一节File类的简单介绍啦,作为IO环节中最常用的类之一,作为开发人员的我们必须熟练掌握此类,虽说API帮助文档的作用不可小觑,但是该过程势必会耗我们大量的开发时间,会减缓我们的工作效率,作为基础的一部分,还是希望大家能够在看完之后自己手动练习巩固

    以上均为本人个人观点,借此分享,希望能和大家一起进步。如有不慎之处,劳请各位批评指正!鄙人将不胜感激并在第一时间进行修改!最后,如果觉得本文对你有用的话,就请给个三连吧!!您的支持就是我最大的创作动力!谢谢~

    image-20220327095755218

  • 相关阅读:
    C语言 蓝牙通信
    基于Docker构建MySQL主从复制数据库
    python的环境安装(版本3.10.6)
    光传输系统中宽带光纤放大技术的频谱拓展方案
    Tomcat Java内存马 Servlet型
    linux安装ES
    【算法题】2874. 有序三元组中的最大值 II
    math标准库的一些函数介绍
    SpringBoot - @PostConstruct 注解详解
    数据库理论(课件)
  • 原文地址:https://blog.csdn.net/m0_67391121/article/details/126020151