目录
概述
构造方法
基本介绍
代码示例
常用方法
获取文件和目录的基本信息
判断功能
创建和删除功能
目录遍历功能
首页 Java java教程 Java的File类怎么使用

Java的File类怎么使用

Apr 21, 2023 pm 07:52 PM
java file

概述

要学习Java中的File类,首先我们要知道,在Java的API中File类的定义,即文件和目录路径的抽象表现形式,不是文件本身。所以在File类中,所涉及到的操作都只是关于文件名称和目录路径的,而不是文件内容,如果想对文件内容进行操作,还得需要学习I/O流(输入/输出流)。

构造方法

基本介绍

只有构造了File类,我们后面才能对它进行操作。对于File类的构造下面介绍三种方法: 抽象表示的文件和目录的路径名:

  • public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。

  • public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。

  • public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。

第一个用的比较多,后面两个用的比较少

代码示例

import java.io.File;

public class FileDemo1 {
    public static void main(String[] args) {

        //public File(String pathname)
        String pathname1 = "F:\\test1.txt";
        File file1 = new File(pathname1);

        //public File(String pathname)
        String pathname2 = "F:\\test2\\test1.txt";
        File file2 = new File(pathname2);

        //下面用的少

        //public File(String parent, String child)
        String parent = "F:\\test3";
        String child = "test1.txt";
        File file3 = new File(parent,child);

        //public File(File parent, String child)
        File parentDir = new File("F:\\test");
        String child1 = "test2.txt";
        File file4 = new File(parentDir,child1);
        
    }
}
登录后复制

常用方法

File类的操作还是非常重要的,所以它的常用方法有很多个,为了方便记忆,我把它分为:

  • 获取文件和目录的基本信息

  • 判断功能

  • 创建和删除功能

  • 目录遍历功能

下面对这些方法分别进行介绍,并举例说明

获取文件和目录的基本信息

  • public String getName() :返回由此File表示的文件或目录的名称。

  • public String getPath() :将此File转换为路径名字符串。

  • public String getParent() :获得父级路径

  • public String getAbsolutePath() :返回此File的绝对路径名字符串

代码示例

import java.io.File;

public class FileDemo2 {
    public static void main(String[] args) {

        File file = new File("F:\\test1\\test2\\text.txt");

        //将此File转换为路径名字符串。
        System.out.println("文件路径:"+ file.getPath());
        //返回由此File表示的文件或目录的名称
        System.out.println("文件名称:"+ file.getName());
        //获得父级路径
        System.out.println("获得父级路径"+ file.getParent());
        //返回此File的绝对路径名字符串
        System.out.println("绝对路径名称" + file.getAbsolutePath());
    }
}
登录后复制

判断功能

  • public boolean exists() :此File表示的文件或目录是否实际存在。

  • public boolean isDirectory() :此File表示的是否为目录。

  • public boolean isFile() :此File表示的是否为文件。

  • public isAbsolute() :判断File对象对应的文件或目录是否是绝对路径

  • public boolean canRead() :判断File对象对应的文件或目录是否可读

  • public boolean canWrite() :判断File对象对应的文件或目录是否可写

  • public boolean isHidden() :判断File对象对应的文件或目录是否是否隐藏

如果文件或目录不存在,那么exists()、isFile()和isDirectory()都是返回true

代码示例

import java.io.File;

public class FileDemo3 {

    public static void main(String[] args) {
        File file1 = new File("F:\\test\\test1\\test2.txt");
        File file2 = new File("F:\\test");

        //此File表示的文件或目录是否实际存在
        boolean exists1 = file1.exists();
        boolean exists2 = file2.exists();
        System.out.println(exists1);
        System.out.println(exists2);

        //此File表示的是否为目录
        boolean directory1 = file1.isDirectory();
        boolean directory2 = file2.isDirectory();
        System.out.println(directory1);
        System.out.println(directory2);

        //此File表示的是否为文件
        boolean file1File = file1.isFile();
        boolean file2File = file2.isFile();
        System.out.println(file1File);
        System.out.println(file2File);

        //判断File对象对应的文件或目录是否是绝对路径
        boolean absolute = file1.isAbsolute();
        System.out.println(absolute);

        //判断File对象对应的文件或目录是否可读
        boolean canRead = file1.canRead();
        System.out.println(canRead);

        //判断File对象对应的文件或目录是否可写
        boolean canWrite = file1.canWrite();
        System.out.println(canWrite);

        //判断File对象对应的文件或目录是否是否隐藏
        boolean hidden = file2.isHidden();
        System.out.println(hidden);
    }
}
登录后复制

创建和删除功能

  • public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

  • public boolean delete() :删除由此File表示的文件或目录。只能删除空目录。

  • public boolean mkdir() :创建由此File表示的目录。

  • public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录

API中说明:delete方法,如果此File表示目录,则目录必须为空才能删除。

代码示例

import java.io.File;
import java.io.IOException;

public class FileDemo4 {
    public static void main(String[] args) throws IOException {
        //创建文件
        File file1 = new File("test.txt");
        System.out.println("是否存在:"+ file1.exists());//false
        System.out.println("是否创建"+ file1.createNewFile());//需要抛出异常
        System.out.println("是否存在:"+ file1.exists()); //true

        //创建目录(单个)
        File file2 = new File("F:\\test");
        System.out.println("是否存在:"+ file2.exists());//false
        System.out.println("是否创建"+ file2.mkdir());
        System.out.println("是否存在:"+ file2.exists()); //true

        //创建多级目录
        File file3 = new File("F:\\test1\\test2");
        System.out.println("是否存在:"+ file3.exists());//false
        System.out.println("是否创建"+ file3.mkdirs());
        System.out.println("是否存在:"+ file3.exists()); //true

        //文件的删除
        System.out.println(file1.delete());

        //目录的删除
        System.out.println(file2.delete());
        System.out.println(file3.delete());//只能删除一级

    }
}
登录后复制

目录遍历功能

  • public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录

  • public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录

调用listFiles方法的File对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。

代码示例

import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class FileDemo5 {
    public static void main(String[] args) {
        File dir = new File("F:\\test");
        dir.mkdirs();
        System.out.println(dir.exists());
        //File dir1 = new File("F:\\test");

        //获取当前目录下的文件及文件夹的名称
        String[] names = dir.list();
        //遍历
        for(String name : names){
            System.out.println(name);
        }

        //获取当前目录下的文件以及文件夹对象,只要拿到了文件对象,那么就可以获取更多信息
        File[] files = dir.listFiles();
        for(File file : files){
            System.out.println(file);
        }
    }
}
登录后复制

但对于多级目录的遍历,我们需要使用递归方法

/*
多级目录的打印。遍历之前,无从知道到底有多少级目录,所以我们可以使用递归实现
 */

import java.io.File;

public class FileDemo6 {
    public static void main(String[] args) {
        File dir = new File("F:\\test1");
        listSubFiles(dir);

    }

    private static void listSubFiles(File dir) {
        if(dir != null && dir.isDirectory()){
            File[] listFiles = dir.listFiles();
            if(dir != null){
                for(File sub : listFiles){
                    listSubFiles(sub);//递归调用
                }
            }
        }
        System.out.println(dir);
    }
}
登录后复制

以上是Java的File类怎么使用的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java 中的完美数 Java 中的完美数 Aug 30, 2024 pm 04:28 PM

Java 完美数指南。这里我们讨论定义,如何在 Java 中检查完美数?,示例和代码实现。

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java 版 Weka 指南。这里我们通过示例讨论简介、如何使用weka java、平台类型和优点。

Java 中的史密斯数 Java 中的史密斯数 Aug 30, 2024 pm 04:28 PM

Java 史密斯数指南。这里我们讨论定义,如何在Java中检查史密斯号?带有代码实现的示例。

Java Spring 面试题 Java Spring 面试题 Aug 30, 2024 pm 04:29 PM

在本文中,我们保留了最常被问到的 Java Spring 面试问题及其详细答案。这样你就可以顺利通过面试。

突破或从Java 8流返回? 突破或从Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

Java 中的时间戳至今 Java 中的时间戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的时间戳到日期指南。这里我们还结合示例讨论了介绍以及如何在java中将时间戳转换为日期。

Java程序查找胶囊的体积 Java程序查找胶囊的体积 Feb 07, 2025 am 11:37 AM

胶囊是一种三维几何图形,由一个圆柱体和两端各一个半球体组成。胶囊的体积可以通过将圆柱体的体积和两端半球体的体积相加来计算。本教程将讨论如何使用不同的方法在Java中计算给定胶囊的体积。 胶囊体积公式 胶囊体积的公式如下: 胶囊体积 = 圆柱体体积 两个半球体体积 其中, r: 半球体的半径。 h: 圆柱体的高度(不包括半球体)。 例子 1 输入 半径 = 5 单位 高度 = 10 单位 输出 体积 = 1570.8 立方单位 解释 使用公式计算体积: 体积 = π × r2 × h (4

如何在Spring Tool Suite中运行第一个春季启动应用程序? 如何在Spring Tool Suite中运行第一个春季启动应用程序? Feb 07, 2025 pm 12:11 PM

Spring Boot简化了可靠,可扩展和生产就绪的Java应用的创建,从而彻底改变了Java开发。 它的“惯例惯例”方法(春季生态系统固有的惯例),最小化手动设置

See all articles