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();
        }
    }

注意:因为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();
        }
    }
业务代码操作三:综合创建,删除文件的操作

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

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();
            }
        }
    }
业务代码操作四:创建一个文件夹

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

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

注意: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();//创建类似二叉树形式文件夹
    }
业务代码操作五:列出指定目录的全部文件

如果现在给出了一个目录,则可以直接列出目录中的内容。但是列出的方法在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);
        }
    }

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

方法二:使用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);
        }
    }

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

以上列出了完全路径。

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

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

测试一:

		File f = new File("E:" + File.separator);
        if (f.isDirectory()) {
            System.out.println(f.getPath() + "是目录");
        } else {
            System.out.println(f.getPath() + "不是目录");
        }

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

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YD_1989

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值