栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

File类详解 -- java基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

File类详解 -- java基础

目录

前言

一、File类概述

二、构造方法        

三、绝对路径和相对路径

四、 常用方法 

1.File类创建功能

2.File类删除功能

3.File类判断功能

4.File类获取功能

总结


前言

本文从以下三个个方面阐述 :①java.io.Flie类可以帮助我们完成哪些工作,②它的构造方法,③常用的方法有哪些。


一、File类概述

1. 它是文件和目录路径名的抽象表示,也就是说文件和目录是可以通过File类封装成对象的

2.但是对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存

在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的


二、构造方法        
方法名说明
File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File(String parent, String child)

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

File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例

1. File(String pathname) 

//使用单参的构造器
private static void method1() {
        //路径名为文件
        String path ="E:\UsageTimes.txt";
        //路径名为目录
        String path ="E:\homework";
        File file = new File(path);
        System.out.println(file);
    }

注意:这里传入的路径名 可以是可以是文件,也可以是目录

2. File(String parent, String child)

//从父路径名字符串和子路径名字符串创建新的 File实例
private static void method2() {
        String path1 = "E:\";
        String path2 = "UsageTimes.txt";
        File file = new File(path1,path2);
        System.out.println(file);
    }

如果父路径为空则按照子路径名创建新的File实例,如果不为空则以父路径名表示目录,子路径名表示目录或者文件(可以理解为将父路径和子路径拼接为一个路径,以此来创建File实例)

3. File(File parent, String child)

//从父抽象路径名和子路径名字符串创建新的 File实例
private static void method3() {
        File file1 = new File("E:\");
        String file2 = "UsageTimes.txt";
        File file = new File(file1,file2);
        System.out.println(file);
    }


三、绝对路径和相对路径
  • 绝对路径:是一个完整的路径,从盘符开始

  • 相对路径:是一个简化的路径,相对当前项目下的路径

  • 代码如下(示例):在这里我使用相对路径创建一个a.txt,代码执行后的结果是在当前项目的根目录下创建a.txt


四、 常用方法 

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

File类可以创建:文件和目录

1. 文件【createNewFile】

代码如下(示例):当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新的空文件

//当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
private static void method1() throws IOException {
        File file = new File("E\UsageTimes.txt");
        //不管调用者有没有后缀名都会创建相应的文件
        boolean result = file.createNewFile();
        System.out.println(result);
    }

如果文件存在时,返回值将为false

2. 目录(这里创建也可以用第三种方法实现,所以基本不用)【mkdir】

使用方法和mkdirs相同,此处不再举例

3. 层级目录【mkdirs】

代码如下(示例):使用mkdirs方法既可以创建多级目录也可以创建单个目录

 //使用mkdirs方法既可以创建多级目录也可以创建单个目录
    private static void method2() {
        File file = new File("E:\aaa\bbb\ccc");
        boolean mkdirs = file.mkdirs();
        System.out.println(mkdirs);
    }

2.File类删除功能
方法名说明
public boolean delete()删除由此抽象路径名表示的文件或目录

代码如下(示例):注意此处删除文件不走回收站,直接删除掉了。

private static void method1() {
        //删除文件不走回收站
        File file = new File("E\UsageTimes.txt");
        file.delete();
    }

3.File类判断功能
方法名说明
public boolean isDirectory()测试此抽象路径名表示的File是否为目录
public boolean isFile()测试此抽象路径名表示的File是否为文件
public boolean exists()测试此抽象路径名表示的File是否存在

4.File类获取功能
方法名说明
public String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
public String getPath()将此抽象路径名转换为路径名字符串
public String getName()返回由此抽象路径名表示的文件或目录的名称
public File[] listFiles()返回此抽象路径名表示的目录中的文件和目录的File对象数组

这里要注意最后一个public File[] listFiles()方法。

以删除一个多级文件夹为例

分析:如果要删除一个文件夹必须要删掉里面的所有内容,这里要删除一个多级文件夹,只知道根目录,里面的内容不知道。

这里我们的思想是 先进入第一级目录,使用public File[] listFiles()方法获取到这一层的所有文件和目录,如果是文件直接删除,如果是目录则再进入...重复这样的操作直到没有获取不到文件和目录。最后再把根目录删除。

这里使用了递归的思想。

代码如下(示例):

public class Test2 {
    //delete方法
    //删除一个有文件的文件夹
    //先删掉这个文件里的所有文件夹
    //F:src
    public static void main(String[] args) {
        File src = new File("F:\src");
        deleteDir(src);
    }
    private static void deleteDir(File src) {
        //递归,方法在方法体中自己调用自己
        //套路
        //1. 进入 -- 得到src文件夹里面说有内容的File对象
        File[] files = src.listFiles();
        //2. 遍历 -- 因为我想得到src文件夹下面的的每一个文件和文件夹的File对象
        for (File file : files) {
            if (file.isFile()){
                //3. 判断 -- 如果遍历到的file对象是一个文件,那么直接删除。
                file.delete();
            }else{
                //4. 递归
                deleteDir(file);
            }
        }
        //最后再删除这个文件夹
        src.delete();
    }
}


总结

这里总结了File类的基本用法

如果有不足之处欢迎指正批评!如果有疑问欢迎留言,绝对第一时间回复!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040309.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号