Java成神路 —— 文件操作

2023-05-07 17:01:39 浏览数 (1)

1.1 File 类概述和构造方法

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

方法名

说明

File(String pathname)

通过将给定的路径名字符串转换为抽象路径名来创建新的 File 实例

File(String parent, String child)

从父路径名字符串和子路径名字符串创建新的 File 实例

File(File parent, String child)

从父抽象路径名和子路径名字符串创建新的 File 实例

3. 示例代码
代码语言:javascript复制
import java.io.File;

public class Demo {
    public static void main(String[] args) {

        //File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File 实例。
        File f1 = new File("D:\demo\java.txt");
        System.out.println(f1);

        //File(String parent, String child):从父路径名字符串和子路径名字符串创建新的 File 实例。
        File f2 = new File("D:\demo","java.txt");
        System.out.println(f2);

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

1.2 File类创建功能

1. 方法分类

方法名

说明

public boolean createNewFile()

当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件

public boolean mkdir()

创建由此抽象路径名命名的目录

public boolean mkdirs()

创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录

2. 示例代码
代码语言:javascript复制
import java.io.File;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {

        // 在D:\demo目录下创建一个文件java.txt
        File f1 = new File("D:\demo\java.txt");
        System.out.println(f1.createNewFile());

        // 在D:\demo目录下创建一个目录JavaSE
        File f2 = new File("D:\demo\JavaSE");
        System.out.println(f2.mkdir());
      
        //在D:\demo目录下创建一个多级目录JavaWEB\HTML
        File f3 = new File("D:\demo\JavaWEB\HTML");
        System.out.println(f3.mkdirs());

        //在D:\demo目录下创建一个文件javase.txt
        File f4 = new File("D:\demo\javase.txt");
        System.out.println(f4.createNewFile());
    }
}

1.3 File类判断和获取功能

1. 判断功能

方法名

说明

public boolean isDirectory()

测试此抽象路径名表示的File是否为目录

public boolean isFile()

测试此抽象路径名表示的File是否为文件

public boolean exists()

测试此抽象路径名表示的File是否存在

2. 获取功能

方法名

说明

public String getAbsolutePath()

返回此抽象路径名的绝对路径名字符串

public String getPath()

将此抽象路径名转换为路径名字符串

public String getName()

返回由此抽象路径名表示的文件或目录的名称

public String[] list()

返回此抽象路径名表示的目录中的文件和目录的名称字符串数组

public File[] listFiles()

返回此抽象路径名表示的目录中的文件和目录的File对象数组

3. 示例代码
代码语言:javascript复制
import java.io.File;

public class Demo {
    public static void main(String[] args) {

        //创建一个File对象
        File f = new File("myFile\java.txt");

        // public boolean isDirectory():测试此抽象路径名表示的File是否为目录
        // public boolean isFile():测试此抽象路径名表示的File是否为文件
        // public boolean exists():测试此抽象路径名表示的File是否存在
        System.out.println(f.isDirectory());
        System.out.println(f.isFile());
        System.out.println(f.exists());

        // public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
        // public String getPath():将此抽象路径名转换为路径名字符串
        // public String getName():返回由此抽象路径名表示的文件或目录的名称
        System.out.println(f.getAbsolutePath());
        System.out.println(f.getPath());
        System.out.println(f.getName());
        System.out.println("--------");

        // public String[] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
        // public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组
        File f2 = new File("D:\demo");
        String[] strArray = f2.list();
        for(String str : strArray) {
            System.out.println(str);
        }
        System.out.println("--------");
        File[] fileArray = f2.listFiles();
        for(File file : fileArray) {
            if(file.isFile()) {
                System.out.println(file.getName());
            }
        }
    }
}

1.4 File类删除功能

1. 方法分类

方法名

说明

public boolean delete()

删除由此抽象路径名表示的文件或目录

2. 示例代码
代码语言:javascript复制
import java.io.File;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {

        // 在当前模块目录下创建java.txt文件
        File f1 = new File("myFile\java.txt");

        // 删除当前模块目录下的java.txt文件
        System.out.println(f1.delete());
        System.out.println("--------");

        // 在当前模块目录下创建demo目录
        File f2 = new File("myFile\demo");

        // 删除当前模块目录下的demo目录
        System.out.println(f2.delete());
        System.out.println("--------");

        // 在当前模块下创建一个目录demo,然后在该目录下创建一个文件java.txt
        File f3 = new File("myFile\demo");
        File f4 = new File("myFile\demo\java.txt");

        // 删除当前模块下的目录demo
        System.out.println(f4.delete());
        System.out.println(f3.delete());
    }
}
3. 绝对路径和相对路径的区别
  • 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:D:demojava.txt
  • 相对路径:必须使用取自其他路径名的信息进行解释。例如:myFilejava.txt

0 人点赞