Java File类

File类概述

  • File类在包java.io.File下、代表操作系统的文件对象(文件、文件夹)。
  • File类提供了诸如:定位文件,获取文件本身的信息、删除文件、创建文件(文件夹)等功能。
  • File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的。

File类创建对象

方法名称

说明

public File(String pathname)

根据文件路径创建文件对象

public File(String parent,String child)

从父路径名字符串和子路径名字符串创建文件对象

public File(File parent,string child)

根据父路径对应文件对象和子路径名字符串创建文件对象

import java.io.File;

public class FileDemo {
    public static void main(String[] args) {
        //常见file对象(指定了文件的路径)
        File file = new File("D:\\java_projects\\resources\\data.txt");
        long size = file.length();
        System.out.println(size);

        //File创建文件支持相对路径,也支持绝对路径
        File file1 = new File("D:\\java_projects\\resources\\yb.jpg");
        System.out.println(file1.length());

        //相对路径:一般定位模块中的文件。相对到工程下
        File file2 = new File("file-io-app/src/data.txt");
        System.out.println(file2.length());

        //File创建对象,可以是文件也可以是文件夹
        File file3 = new File("D:\\java_projects\\resources");
        System.out.println(file3.exists());
    }
}

File类的常用API

File类的判断文件类型、获取文件信息功能

方法名称

说明

public boolean isDirectory()

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

public boolean isFile()

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

public boolean exists()

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

public String getAbsolutePath()

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

public String getPath()

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

public String getName()

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

public long lastModified()

返回文件最后修改的时间毫秒值

import java.io.File;
import java.text.SimpleDateFormat;

public class FileDemo2 {
    public static void main(String[] args) {
        //绝对路径创建一个文件对象
        File f1 = new File("D:\\java_projects\\resources\\yb.jpg");
        //获取它的绝对路径
        System.out.println(f1.getAbsolutePath());//D:\java_projects\resources\yb.jpg
        //获取文件定义的时候使用的路径
        System.out.println(f1.getPath());//D:\java_projects\resources\yb.jpg
        //获取文件的名称带后缀
        System.out.println(f1.getName());//yb.jpg
        //获取文件的大小:字节个数
        System.out.println(f1.length());//869916
        //获取文件的最后修改时间
        long time = f1.lastModified();
        System.out.println("最后修改时间"+new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time));//最后修改时间2020/09/21 18:34:44
        //判断文件是文件还是文件夹
        System.out.println(f1.isFile());//true
        System.out.println(f1.isDirectory());//false
    }
}

File类创建文件的功能

方法名称

说明

public boolean createNewFile()

创建一个新的空的文件

public boolean mkdir()

只能创建一级文件夹

public boolean mkdirs()

可以创建多级文件夹

File类删除文件的功能

方法名称

说明

public boolean delete()

删除由此抽象路径名表示的文件或空文件夹

注意:delete方法直接删除不走回收站;如果删除的是一个文件,且文件没有被占用则直接删除。

import java.io.File;
import java.io.IOException;

public class FileDemo3 {
    public static void main(String[] args) throws IOException {
        File f1 = new File("D:\\java_projects\\resources\\yb.jpg");
        //创建新文件,创建成功返回true,反之false
        System.out.println(f1.createNewFile());//false
        File f2 = new File("D:\\java_projects\\resources\\d1.jpg");
        System.out.println(f2.createNewFile());//true

        //mkdir创建一级目录
        File f3 = new File("D:\\java_projects\\resources\\aaa");
        System.out.println(f3.mkdir());//true

        //mkdirs创建多级目录
        File f4 = new File("D:\\java_projects\\resources\\bbb\\ccc\\ddd");
        System.out.println(f4.mkdirs());//true

        //删除文件或者空文件夹
        System.out.println(f2.delete());//true

        //只能删除空文件夹,不能删除非空文件夹
        File f5 = new File("D:\\java_projects\\resources");
        System.out.println(f5.delete());//false
        System.out.println(f3.delete());//true
    }
}

File类的遍历功能

方法名称

说明

public String[ ] list()

获取当前目录下所有的“一级文件名称”到一个字符串数组中去返回。

public File[] listFiles() (常用)

获取当前目录下所有的“一级文件对象”到一个文件对象数组中去返回(重点)

listFiles方法注意事项:

  • 当调用者不存在时,返回null
  • 当调用者是一个文件时,返回null
  • 当调用者是一个空文件夹时,返回一个长度为0的数组
  • 当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  • 当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容
  • 当调用者是一个需要权限才能进入的文件夹时,返回null
import java.io.File;
import java.util.Arrays;

public class FileDemo4 {
    public static void main(String[] args) {
        //定位一个目录
        File f1 = new File("D:\\java_projects\\resources");
        String[] names = f1.list();
        for(String name:names){
            System.out.println(name);
        }

        //一级文件对象
        //获取当前目录下所有的“一级文件对象”到一个文件对象数组中去返回
        File[] files = f1.listFiles();
        for (File file : files) {
            System.out.println(file.getAbsolutePath());
        }

        //注意事项
        //当调用者不存在时,返回null
        File dir = new File("D:/aaaaaaaa");
        File[] files1 = dir.listFiles();
        System.out.println(files1);//null

        //当调用者是一个文件时,返回null
        File dir2 = new File("D:\\java_projects\\resources\\yb.jpg");
        File[] files2 = dir2.listFiles();
        System.out.println(files2);//null

        //当调用者是一个空文件夹时,返回一个长度为0的数组
        File dir3 = new File("D:\\java_projects\\resources\\aa");
        File[] files3 = dir3.listFiles();
        System.out.println(Arrays.toString(files3));//[]
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奥利奥是甜的

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

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

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

打赏作者

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

抵扣说明:

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

余额充值