0
点赞
收藏
分享

微信扫一扫

Java的IO流之File类

乱世小白 2022-01-20 阅读 68

为什么要使用File类?

如果使用数组,变量在程序结束的时候,则所有数据就会丢失。计算机可以用硬盘实现对数据的永久存储,Java提供了一个对文件储存有关的类——File类。

什么是IO流?

  1. 可以将数据从本地文件中提取出来
  2. 可以将数据保存到本地文件

File的概述与构造方法

  • 它是文件目录路径名抽象表示

  • 文件和目录是可以通过File封装成对象

  • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的

方法名说明
File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例
File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例
public class FileDemo01 {
    public static void main(String[] args) {
        //File(String pathname): 
        //通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
        File f1 = new File("C:\\Users\\Harmony\\Desktop\\Test\\a.txt");
        System.out.println(f1);

        //File(String parent, String child): 
        //从父路径名字符串和子路径名字符串创建新的 File实例
        File f2 = new File("C:\\Users\\Harmony\\Desktop\\Test", "a.txt");
        System.out.println(f2);

        //File(File parent, String child): 
        //从父抽象路径名和子路径名字符串创建新的 File实例
        File f3 = new File("C:\\Users\\Harmony\\Desktop\\Test");
        File f4 = new File(f3, "a.txt");
        System.out.println(f4);
    }
}

File的创建功能

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

(1)createNewFile()方法

public class FileDemo02 {
    public static void main(String[] args) throws IOException {
        File f1 = new File("C:\\Users\\Harmony\\Desktop\\Test\\a.txt");
        boolean result = f1.createNewFile();
        System.out.println(result);
    }
}

 注意点:

  • 如果文件存在,则使用createNewFile()创建失败,返回false
  • 如果文件不存在,则使用createNewFile()创建成功,返回true
  • 不管调用者有没有后缀名,使用createNewFile()方法,只能创建文件。

(2)mkdir()与mkdirs()

public class FileDemo02 {
    public static void main(String[] args) throws IOException {
        File f2 = new File("C:\\Users\\Harmony\\Desktop\\Test\\A");
        boolean res = f2.mkdir();
        System.out.println(res);
    }
}

注:其中"C:\\Users\\Harmony\\Desktop\\Test"目录是已经存在的!这里只是创建了一个A目录

注意点:

  • 使用mkdir()方法只能创建单级文件夹(目录),不能创建多级文件夹(目录)。
  • 不管是否有后缀名,只能创建文件夹(目录),不能创建文件!
public class FileDemo02 {
    public static void main(String[] args) throws IOException {
        File f2 = new File("C:\\Users\\Harmony\\Desktop\\Test\\A\\B\\C");
        boolean res = f2.mkdirs();
        System.out.println(res);
    }
}

注意点:

  • 使用mkdirs()方法既可以创建单级文件夹(目录),也可以创建多级文件夹(目录)。
  • 不管是否有后缀名,只能创建文件夹(目录),不能创建文件!

显然mkdirs()的用途比mkdir()的要广泛!所以我们实际应用中基本上不适用mkdir() !

mkdirs()源码

    public boolean mkdirs() {
        if (exists()) {
            return false;
        }
        if (mkdir()) {
            return true;
        }
        File canonFile = null;
        try {
            canonFile = getCanonicalFile();
        } catch (IOException e) {
            return false;
        }

        File parent = canonFile.getParentFile();
        return (parent != null && (parent.mkdirs() || parent.exists()) &&
                canonFile.mkdir());
    }

我们可以查看一下mkdirs的源码如上,其中第二个if就有调用mkdir方法。

File的删除功能

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

相关推荐

Java IO流 01 File 类

IO流:File类

FILE类与IO流

File类、IO流(部分)

File类和IO流

IO流(一)File类的使用

0 条评论