java--File类

File类

1 概述

1.1 含义

  • File类的对象代表操作系统的文件(文件、文件夹),File类在java.io.File包下

1.2 作用

  • File类提供了诸如:创建文件对象代表文件,获取文件信息(大小、修改时间)、删除文件、创建文件(文件夹)等功能

2 使用

2.1 创建

方法名称说明
public File​(String pathname)根据文件路径创建文件对象
public File​(String parent, String child)根据父路径名字符串和子路径名字符串创建文件对象
public File​(File parent, String child)根据父路径对应文件对象和子路径名字符串创建文件对象
public class FileCreate {
    public static void main(String[] args) {
//        public File(String pathname)	根据文件路径创建文件对象
        File file1 = new File("../data");
//        public File(String parent, String child)	根据父路径名字符串和子路径名字符串创建文件对象
        File file2 = new File("../data", "/b");
//        public File(File  parent, String child)	根据父路径对应文件对象和子路径名字符串创建文件对象
        File file3 = new File(file1, "/b");
    }
}

注意事项:

  • File对象可以定位文件和文件夹
  • File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的。
  • 绝对路径:从盘符开始
  • 相对路径:不带盘符,默认直接到当前工程下的目录寻找文件。

2.2 获取文件信息

方法名称说明
public boolean isDirectory()判断此路径名表示的File是否为文件夹
public boolean isFile()判断此路径名表示的File是否为文件
public boolean exists()判断此路径名表示的File是否存在
public long length()返回文件的大小(字节数量
public String getAbsolutePath()返回文件的绝对路径
public String getPath()返回定义文件时使用的路径
public String getName()返回文件的名称,带后缀
public long lastModified()返回文件的最后修改时间(时间毫秒值)
public static void main(String[] args) {
        // 定义目录
        File file1 = new File("./data");

        // 定位文件
        File file2 = new File("./data/a/b/b.txt");

        // 不存在文件
        File file3 = new File("./d");


//        public boolean isDirectory()	判断此路径名表示的File是否为文件夹
        System.out.println(file1.isDirectory());// true
        System.out.println(file2.isDirectory());//false
        System.out.println(file3.isDirectory());//false


//        public boolean isFile()	判断此路径名表示的File是否为文件
        System.out.println(file1.isFile());// false
        System.out.println(file2.isFile());//true
        System.out.println(file3.isFile());//false

//        public boolean exists()	判断此路径名表示的File是否存在
        System.out.println(file1.exists());// true
        System.out.println(file2.exists());//true
        System.out.println(file3.exists());//false

//        public long length()	返回文件的大小(字节数量)
        System.out.println(file1.length());// true
        System.out.println(file2.length());//true
        System.out.println(file3.length());//false


//        public String getAbsolutePath()	返回文件的绝对路径
        System.out.println(file3.getAbsolutePath());

//        public String getPath()	返回定义文件时使用的路径
        System.out.println(file3.getPath());
        System.out.println(file2.getPath());

//        public String getName()	返回文件的名称,带后缀
        System.out.println(file2.getName());
        System.out.println(file1.getName());

//        public long lastModified()	返回文件的最后修改时间(时间毫秒值)
        System.out.println(file2.lastModified());
    }

2.2 创建销毁文件

方法名称说明
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()只能创建一级文件夹
public boolean mkdirs()可以创建多级文件夹
public boolean delete​()删除由此抽象路径名表示的文件或空文件夹
    public static void main(String[] args) throws IOException {
//        public boolean createNewFile()	创建一个新的空的文件
        File file1 = new File("./data/1.txt");
        file1.createNewFile();

//        public boolean mkdir()	只能创建一级文件夹
        File file2 = new File("./d");
        file2.mkdir();
//        public boolean mkdirs()	可以创建多级文件夹
        File file3 = new File("./c/d/s/a/");
        file3.mkdirs();
//        public boolean delete()	删除由此抽象路径名表示的文件或空文件夹
        File file4 = new File("data/a/c/cc");
        file4.delete();

    }

2.3 遍历文件

方法名称说明
public String[] list()获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回
public File[] listFiles()(常用)获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)

listFiles注意事项

  • 当文件不存在时或者代表文件时,返回null
  • 当文件对象代表一个空文件夹时,返回一个长度为0的数组
  • 当文件对象是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  • 当文件对象是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
    *当没有权限访问该文件夹时,返回null
    public static void traverse(File file){
        if(file.isDirectory()){
            for(File f: file.listFiles()){
                if(f.isFile()){
                    System.out.println(f.getName());
                }
                if(f.isDirectory()){
                    System.out.println(f.getName());
                    traverse(f);
                }
            }
        }

    }

    public static void main(String[] args) {

//        public String[] list()	获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
        File file1 = new File("./data");
        for(String e : file1.list())
        {
            System.out.println(e);
        }
//        public File[] listFiles()(常用)	获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
        File[] files = file1.listFiles();
        // 遍历所有文件
        for(File f : files){
            traverse(f);
        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wbzuo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值