IO流---File 类

基本概念:

File 类是 java.io 包的一部分,用于表示文件和目录路径名的抽象表示形式。这个类可以用来创建、查找、管理文件系统中的文件和目录。尽管 File 对象可以表示文件或目录,但它并不表示文件内容本身或文件系统中实际存在的文件或目录。

以下是一些常用的 File 类方法和功能:

  1. 构造函数
    • File(String pathname) : 通过将给定的路径创建一个新的 File 对象,用来指代某个文件。
    • File(String parent, String child): 根据父路径名字符串和子路径名字符串创建一个新的 File 实例。
    • File(File parent, String child): 根据父抽象路径名和子路径名字符串创建一个新的 File 实例。
  1. 获取文件信息
    • String getName(): 返回由File对象指代的文件或目录的名称。
    • String getPath(): 返回由File对象创建时指定的路径。
    • long length(): 返回由此文件的长度,以字节为单位。
    • boolean isFile(): 判断文件是否存在,如果是目录则返回false。
    • boolean isDirectory(): 判断文件是否是目录。
    • boolean exists(): 判断文件的路径是否存在。
  1. 文件操作
    • boolean createNewFile(): 当且仅当不存在具有此抽象路径名指定名称的文件时,创建一个新的空文件。
    • boolean mkdir(): 创建由此路径名命名的目录。
    • boolean mkdirs(): 创建由此路径名指定的多级目录。
    • boolean delete(): 删除由此路径名表示的文件或目录。
    • boolean renameTo(File dest): 重命名此路径名表示的文件。
  1. 列表文件和目录
    • String\[\] list(): 返回一个字符串数组,这些字符串指定此路径名表示的目录中的文件和目录。
    • File\[\] listFiles(): 返回一个抽象路径名数组,这些路径名表示此路径名表示的目录中的文件。

实例一

将下面的文件依次修改为21.txt,22.txt,23.txt,24.txt,25.txt

关键代码:

复制代码
import java.io.File;

public class FileLearn {
    public static void main(String[] args) {
        //创建文件指代对象
        File file=new File("C:\\Users\\bumiexiguang\\OneDrive\\桌面\\毕业设计\\fileTest");
        //遍历一级文件
        //遍历一级文件名
        String[] list = file.list();
        for (String item:list){
            System.out.println(item);
        }
        //遍历一级文件,并修改文件名
        File[] files = file.listFiles();
        for (File item : files) {
            String name = item.getName();
            String pre = name.substring(0, name.indexOf("."));
            String rear = name.substring(name.indexOf("."));
            String newPre=String.valueOf(Integer.valueOf(pre)+20);
            //拼接文件名
            String newName=newPre+rear;
            //重命名,item.getParent()获取指代文件的父目录
            item.renameTo(new File(item.getParent(),newName));
        }
    }
}

实现结果:

实例二

使用相对路径创建文件

复制代码
public class FileLearn2 {
    public static void main(String[] args) {
        /**
         * 指代模块中的文件,相对路径写法
         */
        File file=new File("a.txt");
        //当文件不存在则创建文件
        if (!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

相对路径是对应蓝色位置,就是相对于lambada模块路径的位置。

实例三

搜索文件,采用递归查找fileTest中的22.txt并返回此文件的位置

复制代码
import java.io.File;

public class FileLearn3 {
    public static void main(String[] args) {
        System.out.println("开始查找");
        search(new File("C:\\Users\\bumiexiguang\\OneDrive\\桌面\\毕业设计"), "22.txt");
    }
    public static void search(File dir, String fileName){
        //当文件不存在或者为null
        if(!dir.exists()||dir==null){
            return ;
        }
        //如果是目录则遍历当前文件夹,如果是文本则判断是否是查找的文件
        if(dir.isDirectory()){
            File[] files = dir.listFiles();
            for (File file : files) {
                //如果是目录则递归
                if(file.isDirectory()){
                    search(file, fileName);
                }else {
                    if(file.getName().contains(fileName)){
                        System.out.println("找到指定文件位置:"+file.getAbsolutePath());

                    }
                }
            }
        }else {
            if (dir.getName().contains(fileName)) {
                System.out.println("找到指定文件位置:" + dir.getAbsolutePath());
            }
        }
    }
}

执行结果

相关推荐
万年咸鱼42 分钟前
Java List 接口详解:从基础到实战
java·windows·list
Neighbor_OldY1 小时前
【实战复盘】RDP暴力破解与内网横向移动溯源:Windows全套排查命令与事件ID硬核解析
运维·windows·web安全
深念Y1 小时前
Windows 11 工具链部署与 SSH 踩坑笔记
windows·笔记·ssh
可爱系程序猿3 小时前
Windows 11 添加共享打印机提示 0x00000bc4:从 RPC 发现到策略配置排查
windows·网络协议·rpc
草莓熊Lotso1 天前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
郝学胜-神的一滴2 天前
C++11 工程级应用 06:自己造一个类似Python的Range迭代器
开发语言·c++·windows·python·程序人生·microsoft
LabVIEW开发2 天前
使用 LabVIEW 获取文件的创建日期:从内置函数到 Windows API 封装
网络·windows·labview·labview知识·labview功能·labview程序
超级码里奥20242 天前
OpenClaw(龙虾[特殊字符])AI 智能体安装教程
windows·node.js
YCOSA20252 天前
雨晨 Windows 11 IoT 企业版 LTSC 26H2 轻装 26300.9278 自用版
windows·物联网
丈剑走天涯3 天前
基于 Python 3 语法的 PyCharm 练习示例,涵盖列表操作、类型判断及数据清洗等核心知识点
windows·python·pycharm