了解Java File类的常用方法

一、File类概述

Java中的File类是一个非常实用的类,它代表了一个文件或目录的路径名。使用File类,你可以对文件或目录进行创建、删除、重命名、遍历等操作。在使用File类之前,你需要引入java.io包。

二、File类常用方法

1. File构造函数

File(String pathname):通过给定的路径名字符串创建一个新File实例。
File(String parent, String child):根据父路径和子路径字符串创建一个新File实例。
File(File parent, String child):根据父路径和子路径名字创建一个新File实例。

2. 文件或目录的常用操作

2.1 创建文件或目录
boolean createNewFile():创建一个新的空文件,如果文件已经存在,则不会创建,返回false。
boolean mkdir():创建一个新目录,如果目录已经存在,则不会创建,返回false。
boolean mkdirs():创建一个新目录和其所有父目录,如果目录已经存在,则不会创建,返回false。
2.2 删除文件或目录
boolean delete():删除文件或目录。如果是一个目录,则该目录必须为空目录才能被删除。
void deleteOnExit():在VM退出时删除文件或目录。
2.3 重命名文件或目录
boolean renameTo(File dest):重命名文件或目录。当目标文件或目录已经存在时,将覆盖它。
2.4 判断文件或目录的存在性和属性
boolean exists():判断文件或目录是否存在。
boolean isDirectory():判断是否为目录。
boolean isFile():判断是否为文件。
boolean canRead():判断文件或目录是否可读。
boolean canWrite():判断文件或目录是否可写。
boolean isHidden():判断文件或目录是否是隐藏文件或目录。
long lastModified():返回文件或目录最后修改时间戳(自1970年1月1日00:00:00 GMT起的秒数)。
long length():返回文件的长度。

3. 文件或目录的遍历

3.1 获取文件或目录列表
String[] list():获取该目录下的所有文件和目录的名称字符串数组。
File[] listFiles():获取该目录下的所有文件和目录的File对象数组。
File[] listFiles(FilenameFilter filter):获取该目录下符合指定过滤器的所有文件和目录的File对象数组。
File[] listFiles(FileFilter filter):获取该目录下满足指定过滤器的所有文件和目录的File对象数组。
3.2 文件或目录的遍历
List getFiles(File file, List fileList):递归获取目录下所有文件的File对象,并加入到fileList集合中。

三、File类完整示例代码

import java.io.*;

public class FileDemo {
    public static void main(String[] args) throws IOException {
        // 构造函数示例
        File file1 = new File("test.txt"); // 相对路径,当前工作目录
        File file2 = new File("/Users/username/test.txt"); // 绝对路径
        File file3 = new File("/Users/username", "test.txt"); // 父路径+子路径
        File file4 = new File(new File("/Users/username"), "test.txt"); // File对象和子路径

        // 文件或目录的常用操作示例
        file1.createNewFile();
        file2.mkdirs();
        file3.delete();
        file4.renameTo(new File("/Users/username/newname.txt"));

        // 判断文件或目录的存在性和属性示例
        System.out.println(file1.exists());
        System.out.println(file2.isDirectory());
        System.out.println(file2.canRead());
        System.out.println(file3.isFile());
        System.out.println(file3.canWrite());

        // 文件或目录的遍历示例
        File[] fileList = new File("/Users/username").listFiles();
        for (File file : fileList) {
            System.out.println(file.getName());
        }
        List allFiles = new ArrayList();
        getFiles(new File("/Users/username"), allFiles);
        for (File file : allFiles) {
            System.out.println(file.getAbsolutePath());
        }
    }

    public static void getFiles(File file, List fileList) {
        // 如果是文件夹,递归获取子文件
        if (file.isDirectory()) {
            File[] subFiles = file.listFiles();
            for (File subFile : subFiles) {
                getFiles(subFile, fileList);
            }
        } else {
            fileList.add(file);
        }
    }
}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/199436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-05 10:21
下一篇 2024-12-05 10:21

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29

发表回复

登录后才能评论