I/O流01:file类的基本操作

本文详细介绍了Java中的File类,包括File类的概述、实例创建方式及主要方法,如获取路径、名称、长度等。还展示了在不确定父路径存在情况下创建文件的代码演示,以及如何遍历和过滤文件,包括遍历文件名称和绝对路径的运行结果。

一、File类

1、概述

  • 该类主要用于文件和目录的创建、文件的查找和文件的删除等
  • File对象代表磁盘中实际存在的文件和目录。通过以下构造方法创建一个File对象

2、创建File类实例三种方式

  • 通过给定的父抽象路径名和子路径名字符串创建一个新的File实例
File(File parent, String child);
  • 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例
File(String pathname);
  • 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
File(String parent, String child);

3、File类的主要方法

  • 获取文件的绝对路径
file.getAbsolutePath();
  • 获取文件的相对路径
file.getPath();
  • 获取文件的名称
file.getName();
  • 获取文件的长度
file.length();
  • 获取文件的父路径
file.getParent();
  • 判断文件是否存在
file.exists();
  • 判断文件是否为目录
file.isDirectory();
  • 判断文件是否为文件
file.isFile()
  • 创建新的文件(确定父路径存在的情况下)
file.createNewFile();
  • 删除文件
file.delete();
  • 创建目录(单级目录)
file.mkdir();
  • 创建多级目录(包含子目录)
file.mkdirs();
  • 删除目录(近删除最后一层的目录)
file.delete();

二、不确定父路径是否存在的情况下创建文件(代码演示)

/*
* 当不知道父路径是否存在的情况下创建一个文件
* */
public class 不确定父路径是否存在的情况下创建文件 {
    public static void main(String[] args) throws IOException {
        //1、创建一个文件的实例对象
        java.io.File file = new java.io.File("C:\\A1\\A2\\a.txt");

        File parentFile = file.getParentFile();
        //2、判断父路径是否存在
        if (!parentFile.exists()){
            //3、父路径不存在时创建
            parentFile.mkdirs();
        }
        //4、创建目标文件
        file.createNewFile();
    }

}

三、文件的遍历以及过滤

1、遍历文件的名称

public class 遍历文件名称 {
    public static void main(String[] args) {
        //创建一个文件实例
        File file = new File("D:\\Program Files (x86)");
        //得到文件夹下的文件名数组
        String[] list = file.list();
        //遍历文件夹下的文件
        for (String name:list) {
            System.out.println(name);
        }
      }
    } 
  • 运行结果
    在这里插入图片描述

2、遍历文件的绝对路径

public class 遍历文件的绝对路径 {
    public static void main(String[] args) {
        //创建一个文件实例
        File file = new File("D:\\Program Files (x86)");
        //得到文件下文件对象数组
        File[] files = file.listFiles();
        for (File fileName : files) {
            System.out.println(fileName.getAbsolutePath());
         }
        }
      }
    } 
  • 运行结果
    在这里插入图片描述

3、文件的过滤

public class 文件的过滤 {
    public static void main(String[] args) {
        //创建一个文件实例
        File file = new File("D:\\Program Files (x86)");
    //以文件名称作为条件进行过滤
        File[] fileArray = file.listFiles(new FilenameFilter() 
                public boolean accept(File dir, String name) {
                System.out.println(dir+"---->"+name);
                //过滤条件,返回值为false的将被过滤不被输出
                if (name.equals("DingDing")||name.equals("FormatFactory")){
                    return false;
                }
                return true;
            }
        });

        for (File arr : fileArray) {
            System.out.println("@"+arr.getName());
         }
        
        }
      }
    } 
  • 运行结果
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

微笑AJJD

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

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

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

打赏作者

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

抵扣说明:

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

余额充值