Java 之 File类

本文介绍了Java中的File类,用于操作文件和目录。通过File类,可以创建、删除、重命名文件及目录,并进行相关判断。文章详细展示了各种方法的使用,如createNewFile()、mkdir()、mkdirs()、delete()、renameTo()等,还涵盖了文件的路径处理、属性获取等功能,是理解Java文件操作的基础。
摘要由CSDN通过智能技术生成

前言

我的车胎扎了钉子,送到维修厂,让师傅补好做备胎,把备胎换上用。师傅检查了一下:你这备胎有四五年了吧,虽然没用过,也老化得不能用了。我觉得好笑,就把这事分享给心仪已久、这几年相处得不错的女神,逗她开心。她噗呲一笑,然后把我拉黑了。。。。

File类

为什么要学习File类呢,他的作用又是什么呢?

  • IO流操作中大部分都是对文件进行操作,所以Java就提供了一个File类供我们来操作文件,它是以抽象的方式代表文件名和目录路径名,该类主要是对文件或目录的创建,文件的查找,删除等。对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的。

1. 路径的分类:

绝对路径:带有盘符号的路径
相对路径:没有带盘符号的路径,默认在根目录下

2. 构造方法

File(String pathname):根据一个路径得到File对象
File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
File(File parent, String child):根据一个父File对象和子文件/目录得到File对象

示例代码

package org.westos.demo2;

import java.io.File;

public class MyTest2 {
    public static void main(String[] args){
        //通过路径得到对象
        File file = new File("E:\\aaa\\");
        //通过父类路径和子类名得到对象
        File file1 = new File("E:\\", "aaa");
        //通过父类对象和子类名得到对象
        File file2 = new File("E:\\");
        File file3 = new File(file2, "aaa");
    }
}

3. 成员方法

创建功能

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

示例代码

public class FileDemo02 {
    public static void main(String[] args) throws IOException {
        //需求1:我要在E:\\itcast目录下创建一个文件java.txt
        File f1 = new File("E:\\itcast\\java.txt");
        System.out.println(f1.createNewFile());
        System.out.println("--------");

        //需求2:我要在E:\\itcast目录下创建一个目录JavaSE
        File f2 = new File("E:\\itcast\\JavaSE");
        System.out.println(f2.mkdir());
        System.out.println("--------");

        //需求3:我要在E:\\itcast目录下创建一个多级目录JavaWEB\\HTML
        File f3 = new File("E:\\itcast\\JavaWEB\\HTML");
//        System.out.println(f3.mkdir());
        System.out.println(f3.mkdirs());
        System.out.println("--------");

        //需求4:我要在E:\\itcast目录下创建一个文件javase.txt
        File f4 = new File("E:\\itcast\\javase.txt");
//        System.out.println(f4.mkdir());
        System.out.println(f4.createNewFile());
    }
}

删除功能

public boolean delete() ;

注意:

  1. 要删除一个文件夹,请注意该文件夹内不能包含文件或文件夹
  2. java中删除不走回收站

示例代码

public class FileDemo03 {
    public static void main(String[] args) throws IOException {
//        File f1 = new File("E:\\itcast\\java.txt");
        //需求1:在当前模块目录下创建java.txt文件
        File f1 = new File("myFile\\java.txt");
//        System.out.println(f1.createNewFile());

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

        //需求3:在当前模块目录下创建itcast目录
        File f2 = new File("myFile\\itcast");
//        System.out.println(f2.mkdir());

        //需求4:删除当前模块目录下的itcast目录
        System.out.println(f2.delete());
        System.out.println("--------");

        //需求5:在当前模块下创建一个目录itcast,然后在该目录下创建一个文件java.txt
        File f3 = new File("myFile\\itcast");
//        System.out.println(f3.mkdir());
        File f4 = new File("myFile\\itcast\\java.txt");
//        System.out.println(f4.createNewFile());

        //需求6:删除当前模块下的目录itcast
        System.out.println(f4.delete());
        System.out.println(f3.delete());
    }
}

重命名功能

public boolean renameTo(File dest):如果路径名相同,就是改名;如果路径名不相同,就是改名并剪切

判断功能

public boolean isDirectory():判断是否是文件夹
public boolean isFile():判断是否是文件
public boolean exists():判断文件或文件夹是否存在
public boolean canRead(): 判断是否可读
public boolean canWrite(): 判断是否可写
public boolean isHidden(): 判断文件或文件夹是否隐藏

示例代码

public class FileDemo04 {
    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():获取文件或文件夹名称
public long length():获取长度,字节数,可以获取文件的大小进行判断
public long lastModified():获取最后一次修改的时间,返回毫秒值,可以判断文件被修改过几次

高级获取功能:
public String[ ] list():获取目录下的所有文件或者文件夹的名称数组
public File[ ] listFiles():获取指定目录下的所有文件夹的File对象数组,返回的是File对象说明可以调用File的方法

示例代码

public class FileDemo04 {
    public static void main(String[] args) {
        //创建一个File对象
        File f = new File("myFile\\java.txt");

//        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("E:\\itcast");

        String[] strArray = f2.list();
        for(String str : strArray) {
            System.out.println(str);
        }
        System.out.println("--------");

        File[] fileArray = f2.listFiles();
        for(File file : fileArray) {
//            System.out.println(file);
//            System.out.println(file.getName());
            if(file.isFile()) {
                System.out.println(file.getName());
            }
        }
    }
}

文件过滤接口

想获取的时候就满足条件,要实现文件过滤接口:public String[ ] listFiles(new FilenameFilter)

我们了解了File类的一些基本的功能方法和作用,下一期我们就进入IO流,不见不散哟!
请添加图片描述

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值