• Java IO(一) File类


    Java IO(一) File类

    在整个java.io包下,唯一表示与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等常用操作。要想使用File类。则首先要了解File类的构造方法。

    File类常用的构造方法如下:

    No.方法或常量类型描述
    1public static final String pathSeparator常量表示路径的分隔符(windows是“;”)
    2public static final String separator常量表示路径的分隔符(windows是“\”)
    3public File(String pathname)构造创建File类对象,传入完整路径
    4public boolean createNewFile()throws IOException普通创建新文件
    5public boolean delete()普通删除文件
    6public boolean exists()普通判断文件是否存在
    7public boolean isDirectory()普通判断给定的路径是否在一个目录
    8public long length()普通返回文件的大小
    9public String[] list()普通列出指定目录的全部内容,只是名称
    10public File[] listFiles()普通列出指定目录的全部内容,会有路径
    11Public Boolean mkdir()普通创建一个目录
    12Public Boolean renameTo(File dest)普通为已有的文件重命名

    注意:public File(String pathname) 实例化File类的时候,必须设置好路径。

    业务代码操作一:创建一个新文件

    在E盘下创建一个IOTest.txt文件

      public static void main(String[] args) {
            File file = new File("E:" + File.separator + "IOTest.txt");
            try {
                file.createNewFile();
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注意:因为Windows系统下的分隔符和Linux系统下的分隔符是不同的,所以为了增强适用性,用File.separator来进行分割。

    业务代码操作二:删除一个指定文件

    删除刚刚创建的IOTest.txt文件

    public static void main(String[] args) {
            File file = new File("E:" + File.separator + "IOTest.txt");
            if (file.exists()) {//判断文件存不存在,如不存在就不用删除了
                file.delete();
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    业务代码操作三:综合创建,删除文件的操作

    业务场景:给定一个路径,如果此文件存在,则删除;如果不存在,则创建

    public static void main(String[] args) {
            File file = new File("E:" + File.separator + "IOTest.txt");
            if (file.exists()) {//判断文件存不存在,如不存在就不用删除了
                file.delete();
                System.out.println("文件已经存在,删除");
            } else {
                try {
                    file.createNewFile();
                    System.out.println("文件不存在,创建");
                } catch (IOException ioException) {
                    ioException.printStackTrace();
                }
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    业务代码操作四:创建一个文件夹

    使用mkdir()方法创建一个文件夹

    public static void main(String[] args) {
            File file = new File("E:" + File.separator + "io");
            file.mkdir();
        }
    
    • 1
    • 2
    • 3
    • 4

    注意:mkdir()方法只用于创建单独的一个文件夹,但是如果是创建含有多个子文件的文件夹形式,比如:E:\io\a\b\c,则需要方法mkdirs()

    public static void main(String[] args) {
            File file = new File("E:" + File.separator + "io" + File.separator + "a" + File.separator + "b" + File.separator + "c");
            file.mkdirs();//创建类似二叉树形式文件夹
        }
    
    • 1
    • 2
    • 3
    • 4
    业务代码操作五:列出指定目录的全部文件

    如果现在给出了一个目录,则可以直接列出目录中的内容。但是列出的方法在File类中存在两个:

    • 以字符串数组的形式返回:public String[] list()
    • 以File数组的形式返回:public File[] listFiles()

    在E盘下创建IO文件夹,并在文件夹下创建多个格式文件,如下图:
    在这里插入图片描述

    方法一:使用list()列出全部内容
    public static void main(String[] args) {
            File f = new File("E:" + File.separator + "IO" + File.separator);
            String[] str = f.list();
            for (String s : str) {
                System.out.println(s);
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    控制台打印结果:
    在这里插入图片描述

    方法二:使用listFiles()列出
    public static void main(String[] args) {
            File f = new File("E:" + File.separator + "IO" + File.separator);
            File[] files = f.listFiles();
            for (File file : files) {
                System.out.println(file);
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    控制台打印结果:
    在这里插入图片描述

    以上列出了完全路径。

    业务代码操作六:判断一个给定的路径是否目录

    给定路径,判断是否是目录。

    测试一:

    		File f = new File("E:" + File.separator);
            if (f.isDirectory()) {
                System.out.println(f.getPath() + "是目录");
            } else {
                System.out.println(f.getPath() + "不是目录");
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    打印结果:
    在这里插入图片描述
    测试二:

     		File f = new File("E:" + File.separator + "IO.txt");
            if (f.isDirectory()) {
                System.out.println(f.getPath() + "是目录");
            } else {
                System.out.println(f.getPath() + "不是目录");
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    打印结果:
    在这里插入图片描述

    业务代码操作七:列出指定目录的全部内容

    如果给定了一个目录,则要求把此目录中的全部文件都列出来,包括子文件夹下的文件。

    E盘下面有文件夹IO,IO文件夹下有文件,有子文件夹,如下图:
    在这里插入图片描述
    在这里插入图片描述
    业务代码:

    public static void main(String[] args) {
            File f = new File("E:" + File.separator + "IO" + File.separator);
            print(f);
        }
    
        public static void print(File file) {
            if (file != null) {
                if (file.isDirectory()) {
                    File[] files = file.listFiles();
                    if (files != null) {
                        for (File f : files) {
                            print(f);
                        }
                    }
                } else {
                    System.out.println(file);
                }
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    打印结果:

    在这里插入图片描述

    总结:

    1. File类是在java.io包中唯一与文件本身有关的
    2. 可以使用File类创建、删除等常见的文件操作
    3. 在使用File类指定路径的时候一定要注意操作系统间的差异,尽量使用separator进行分割

    拓展连接:java IO学习笔记(二)字节流和字符流

  • 相关阅读:
    Android修行手册 - ScrollView示例和监听
    如何使用vue的计算属性来处理数据计算?
    如何使用jenkins、ant、selenium、testng搭建自动化测试框架
    微软TTS最新模型,发布9种更真实的AI语音
    中南民族大学计算机考研资料汇总
    计算机毕业论文java毕业设计选题源代码基于javaweb实现的客运站网上售票系统
    Linux:将mysql数据导入mongodb
    Redis源码分析-存储原理与数据模型
    Z-Libary最新地址检测,再也不用担心找不到ZLibary了
    【Vue十三】-- Vuex详细介绍
  • 原文地址:https://blog.csdn.net/m0_58680865/article/details/126914665