千家信息网

Java的File类怎么使用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天小编给大家分享一下Java的File类怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来
千家信息网最后更新 2026年11月03日Java的File类怎么使用

今天小编给大家分享一下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类怎么使用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

目录 文件 路径 路径名 对象 字符 字符串 方法 功能 代码 名称 由此 示例 内容 知识 篇文章 信息 实例 实际 递归 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 广州万易互联网科技有限公司 互联网科技公司华为 金融科技与互联网金融 礼当家互联网科技 广州宏创互联网科技 居家互联网科技有限公司 北京三清互联网科技 科技互联网的估值 互联网科技创新服务 宝灵互联网科技有限公司 崇明区互联网教育科技诚信经营 互联网科技公司实习生 深圳育鹏互联网科技有限公司招聘 青海科技产业互联网发展 本届互联网博览会上的黑科技 互联网金融科技名词解释 中天科技中国工业互联网 互联网时代高科技布局 科技互联网企业在行动 新华互联网科技 互联网是不是新科技 互联网科技有限公司图片 互联网科技社 碳银互联网科技 团飞科技与伯堂互联网服务平台 金融科技与互联网金融相同和不同 速维有品互联网信息科技(苏州)有限公司 坤平互联网科技 科技互联网行业投资研究
0