0
点赞
收藏
分享

微信扫一扫

Java——File

上善若水山西太原 2022-04-21 阅读 123
java

Java——File

一、File类概述

File是文件和目录路径名的抽象表示

  • 文件和目录是可以通过File封装成对象的
  • 对于File而言,其封装的不是真正存在的文件,仅仅是一个路径名。它可以是存在的,也可以是不存在的,要通过具体的操作把这个路径的内容转换为具体的存在。

二、File类的构造方法

  • File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
  • File(String parent,String child):从父路径名字符串和子路径名字符串创建新的File实例
  • File(File parent,String child):从父抽象路径名和子路径名字符串创建新的File实例
import java.io.File;

public class Demo {
    public static void main(String[] args) {
        //File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
        File f1 = new File("D:\\file\\java.txt");
        System.out.println(f1);

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

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

在这里插入图片描述

三、File类的创建功能

  • public boolean createNewFile():当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
  • public boolean mkdir():创建由该抽象路径名命名的目录
  • public boolean mkdirs():创建由该抽象路径名命名的目录,包括任何必需但不存在的父目录
import java.io.File;
import java.io.IOException;

public class Demo1 {
    public static void main(String[] args) throws IOException {
        //在D:\\file目录下创建一个文件java.txt
        File f1 = new File("D:\\file\\java.txt");
        f1.createNewFile();

        //在D:\\file目录下创建一个目录JavaSE
        File f2 = new File("D:\\JavaSE");
        f2.mkdir();

        //在D:\\file目录下创建一个多级目录JavaWEB\\HTML
        File f3 = new File("D:\\JavaWEB\\HTML");
        f3.mkdirs();
    }
}

四、File类判断和获取功能

  • public boolean isDirectory():测试此抽象路径名表示的File是否为目录
  • public boolean isFile():测试此抽象路径名表示的File是否为文件
  • public boolean exists():测试此抽象路径名表示的File是否存在
  • public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
  • public String getPath():将此抽象路径名转换为路径名字符串
  • public String getName():返回由此抽象路径名表示的文件或目录的名字
  • public String[] list():返回此抽象路径名表示的目录中文件和目录的名称字符串数组
  • public File[] listFiles():返回此抽象路径名表示的目录中文件和目录的File对象数组
import java.io.File;

public class Demo2 {
    public static void main(String[] args) {
        File f = new File("JiHeM\\java.txt");
        //public boolean isDirectory():测试此抽象路径名表示的File是否为目录
        //public boolean isFile():测试此抽象路径名表示的File是否为文件
        //public boolean exists():测试此抽象路径名表示的File是否存在
        System.out.println(f.isDirectory());//false
        System.out.println(f.isFile());//true
        System.out.println(f.exists());//true
        System.out.println("-----------------------");

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

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

        //public File[] listFiles():返回此抽象路径名表示的目录中文件和目录的File对象数组
        File[] files = f2.listFiles();
        for (File fil : files) {
            System.out.println(fil);
        }
    }
}

在这里插入图片描述

五、File类的删除功能

  • public boolean detele():删除此抽象路径名表示的文件或目录
    如果一个目录中有内容(目录、文件),不能直接删除,应该先删除目录中的内容,最后才能删除目录
import java.io.File;

public class Demo3 {
    public static void main(String[] args) {
        //删除文件
        File f1 = new File("D:\\file\\java.txt");
        System.out.println(f1.delete());//true

        //删除目录,该目录下为空
        File f2 = new File("D:\\file\\JavaSE");
        System.out.println(f2.delete());//true

        //删除目录,该目录下不为空,要先删除目录下的文件,再删除目录
        File f3 = new File("D:\\file\\JavaSE\\abc.txt");
        System.out.println(f3.delete());//true
        File f4 = new File("D:\\file\\JavaSE");
        System.out.println(f4.delete());//true
    }
}

六、遍历目录

要求
给定一个目录,通过递归完成遍历该目录下的所有内容,并把所有文件的绝对路径输出在控制台上

思路

  1. 根据给定的路径创建一个File对象
  2. 定义一个方法,用于获取给定目录下的所有内容,参数为第一轮创建的File对象
  3. 获取给定的File目录下所有文件或目录的File数组
  4. 遍历该File数组,得到每一个File对象
  5. 判断该File对象是否是目录,如果是则递归调用,否则获取绝对路径输出在控制台
  6. 调用方法

代码

import java.io.File;

public class Demo4 {
    public static void main(String[] args) {
        File f = new File("G:\\pycharmB\\PyCharm 2020.3.2");
        getAllFilePath(f);
    }

    public static void getAllFilePath(File f) {
        File[] files = f.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    getAllFilePath(file);
                } else {
                    System.out.println(file.getAbsoluteFile());
                }
            }
        }
    }
}

运行结果
在这里插入图片描述

举报

相关推荐

java File

java File类

java file to byte

java基础---file

【Java】File类

File类.Java

java file http url

0 条评论