关于File类概念及方法的一些介绍

关于File类概念及方法的一些介绍java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。Java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作。File类的方法可以实现:1.创建一个文件/文件夹2.删除文件/文件夹3.获取文件/文件夹4.判断文件/文件夹是否存在5.对文件夹进行遍历6.获取文件的大小File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法重点:File:文件;Directory:文件夹/目录

大家好,又见面了,我是你们的朋友全栈君。

java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
Java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作。

File类的方法可以实现:

  • 1.创建一个文件/文件夹
  • 2.删除文件/文件夹
  • 3.获取文件/文件夹
  • 4.判断文件/文件夹是否存在
  • 5.对文件夹进行遍历
  • 6.获取文件的大小

File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法
重点:File:文件;Directory:文件夹/目录;Path:路径

1 静态成员变量

  • static String pathSeparator与系统有关的分隔符,为了方便,被表示成一个字符串

  • static char pathSeparatorChar 与系统有关的路径分隔符

  • static String separator与系统有关的默认分隔符,为了方便,表示成一个字符串

  • static char separatorChar 与系统有关的默认名称分隔符

代码示例如下:

		String pathSeparator = File.pathSeparator;
        System.out.println(pathSeparator);//;

        char pathSeparatorChar = File.pathSeparatorChar;
        System.out.println(pathSeparatorChar);//;

        String separator = File.separator;
        System.out.println(separator);//\

        char separatorChar = File.separatorChar;
        System.out.println(separatorChar);//\

2 相对路径与绝对路径

路径:

  • 绝对路径:是一个完整的路径,以盘符(C:,D:,E:)开始的路径
    如:C:\Users\Lee\Java\abc.txt
  • 相对路径:是一个简化的路径,相对指的是对于当前项目的根目录*(C:\Users\Lee\Java)*
    如果使用当前项目的根目录,路径可以简化书写:
    C:\Users\Lee\Java\abc.txt → abc.txt(可以省略项目的根目录)

注意:
1.路径不区分大小写
2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠

3 构造方法

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

    路径可以是文件结尾,也可以是以文件夹结尾,可以是相对路径也可以是绝对路径,路径可以存在也可以不存在
    创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况

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

    参数:把路径分成两部分
    String parents:父路径
    String Children:子路径

    好处:父路径和子路径可以单独书写,使用起来非常灵活,父路径和子路径都可以变化

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

    参数:把路径分成两部分
    String parents:父路径
    String Children:子路径

    好处:
    父路径和子路径可以单独书写,使用起来非常灵活,父路径和子路径都可以变化
    父路径是File类型,可以使用File的方法对路径进行一些操作,再使用路径创建对象

代码如下:

public class File02 { 
   
    public static void main(String[] args) { 
   
    /* public File(String pathname):通过将给定的**路径名字符串**转换为抽象路径名来创建新的 File实例。 */
        File f1=new File("D:\\Java\\a.txt");
        System.out.println(f1);//D:\Java\a.txt(重写了toString方法)

        File f2=new File("D:\\Java");
        System.out.println(f1);//D:\Java
     /* public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。 */
        File f3=new File("D:\\","a.txt");
        System.out.println(f3);//D:\a.txt

     /* public File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。 */
        File f4=new File(f2,"c.txt");
        System.out.println(f4);//D:\Java\c.txt
    }
}

4 常用方法

4.1 获取功能的方法
  • public String getAbsolutePath() :返回此File的绝对路径名字符串。

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

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

  • public long length() :返回由此File表示的文件的长度。

API中说明:length(),表示文件的长度。但是File对象表示目录,则返回值未指定。

代码示例如下:

import java.io.File;

public class File03 { 
   
    public static void main(String[] args) { 
   
        method01();
        method02();
        method03();
        method04();
    }
    //public String getAbsolutePath():返回此File的绝对路径名字符串。
    private static void method01() { 
   
        File f1=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me");
        String absolutePath1 = f1.getAbsolutePath();
        System.out.println(absolutePath1);//D:\CODE\JAVA\03-09-code\src\me

        File f2=new File("a.txt");
        String absolutePath2 = f2.getAbsolutePath();
        System.out.println(absolutePath2);//D:\CODE\JAVA\a.txt
    }

    //public String getPath():将此File转换为路径名字符串。
    private static void method02() { 
   
        File f1=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me");
        String path = f1.getPath();
        System.out.println(path);

        File f2=new File("D:\\CODE\\JAVA");
        String path1 = f2.getPath();
        System.out.println(path1);//D:\CODE\JAVA
    }

    //public String getName():返回由此File表示的文件或目录的名称。(获取的就是构造方法传递路径的结尾部分)
    private static void method03(){ 
   
        File f1=new File("C:\\Users\\lee\\Desktop\\lunwen");
        String name = f1.getName();
        System.out.println(name);//lunwen

        File f2=new File("C:\\Users");
        String name1 = f2.getName();
        System.out.println(name1);//Users
    }

    //public long length():返回由此File表示的文件的长度。(获取构造方法指定的文件的大小,以字节为单位)
    /* 注意:文件夹是没有大小概念的,不能获取文件夹的大小 如果构造方法中给出的路径不存在,那么length方法返回0 */
    private static void method04(){ 
   
        File f1=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me");
        long length = f1.length();
        System.out.println(length);//0

        File f2=new File("D:\\CODE\\JAVA\\03-09-code\\src\\me\\lwj\\s01\\Abstract.java");
        long length2 = f2.length();
        System.out.println(length2);//1270
    }
}
4.2 判断功能的方法
  • public boolean exists() :此File表示的文件或目录是否实际存在。

用于判断构造方法中的路径是否存在,返回true或者false

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

用于判断构造方法中给定的路径是否以文件夹结尾

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

用于判断构造方法中给定的路径是否以文件结尾

注意:电脑硬盘中只有文件/文件夹,两个方法互斥,使用时路径必须存在,否则都返回false

代码示意:

import java.io.File;

public class File04 { 
   
    public static void main(String[] args) { 
   
        method01();
        method02();
    }
    /* public boolean exists():此File表示的文件或目录是否实际存在。 用于判断构造方法中的路径是否存在,返回true或者false */
    private static void method01() { 
   
        File f1=new File("D:\\CODE\\DelaunayTIN(4)");
        boolean exists = f1.exists();
        System.out.println(exists);//true

        File f2=new File("D:\\CODE\\DelaunayTIN");
        boolean exists1 = f2.exists();
        System.out.println(exists1);//false、

        File f3=new File("File04.java");
        boolean exists2 = f3.exists();
        System.out.println(exists2);//true
    }

    /* public boolean isDirectory():此File表示的是否为目录。 用于判断构造方法中给定的路径是否以文件夹结尾 public boolean isFile():此File表示的是否为文件。 用于判断构造方法中给定的路径是否以文件结尾 注意:电脑硬盘中只有文件/文件夹,两个方法互斥,使用时路径必须存在,否则都返回false */
    private static void method02(){ 
   
        File f1=new File("D:\\文档\\04.02\\data");
        boolean directory = f1.isDirectory();
        System.out.println(directory);//true
        System.out.println(f1.isFile());//false

        File f2=new File("D:\\文档\\04.02\\data\\04.dbf");
        System.out.println(f2.isFile());//true
        System.out.println(f2.isDirectory());//false

    }
}
4.3 创建删除功能的方法
  • public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

    注意:
    1.此方法只能创建文件,不能创建文件夹
    2.创建文件的路径必须存在,否则抛出异常

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

    此方法可以删除构造方法路径中给出的文件/文件夹
    注意:delete方法是直接在硬盘删除文件/文件夹,不走回收站,删除要谨慎

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

    创建单级空文件夹

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

    既可创建单级空文件夹也可创建多级文件夹

代码示例:

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

public class File05 { 
   
    public static void main(String[] args) throws IOException { 
   
        //method01();
        method02();
        method03();
    }
    /* public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。 */
    private static void method01() throws IOException { 
   
        File f1=new File("D:\\文档\\04.02\\a.txt");
        boolean newFile = f1.createNewFile();
        System.out.println(newFile);//true

        File f2=new File("rusell\\b.txt");
        System.out.println(f2.createNewFile());//抛出异常
    }

    /* public boolean mkdir():创建由此File表示的目录。(创建单级空文件夹) public boolean mkdirs():创建由此File表示的目录,包括任何必需但不存在的父目录。(即可创建单级空文件夹也可创建多级文件夹) 返回值: 文件夹不存在,创建文件夹,返回true 文件夹存在,不会创建,返回false;构造方法中给出的路径不存在返回false 注意:此方法只能创建文件夹,不能创建文件 */
    private static void method02(){ 
   
        //单级空文件夹
        File f1=new File("D:\\CODE\\1");
        System.out.println(f1.mkdir());//true
        //多级文件夹
        File f2=new File("D:\\CODE\\a\\b\\c");
        System.out.println(f2.mkdirs());//true

        File f3=new File("C:\\CODE\\a\\b\\c");
        System.out.println(f3.mkdir());//false

    }
    /* public boolean delete():删除由此File表示的文件或目录。 返回值: 文件/文件夹删除成功,返回true 文件夹中有内容,不会删除返回false,构造方法中路径不存在返回false */
    private static void method03(){ 
   
        //删除文件夹
        File f1=new File("D:\\LDSGameMaster");
        System.out.println(f1.delete());//false

        File f2=new File("D:\\CODE\\1");
        System.out.println(f2.delete());//true

        //删除文件
        File f3=new File("D:\\CODE\\a\\point.txt");
        System.out.println(f3.delete());//true
    }
}

5 目录的遍历

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

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

代码如下:

import java.io.File;

public class File06 { 
   
    public static void main(String[] args) { 
   
        method01();
    }

    private static void method01() { 
   
        File f1=new File("D:\\CODE");
        String[] list1 = f1.list();
        //遍历数组list1
        for (String s : list1) { 
   
            System.out.println(s);
        }
       // System.out.println(list1);
        File[] files = f1.listFiles();
        for (File file : files) { 
   
            System.out.println(file);
        }
        //System.out.println(files);
    }
}

运行结果:
list:
在这里插入图片描述
listFiles:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134294.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Camunda流程引擎快速入门——Hello World示例

    Camunda流程引擎快速入门——Hello World示例一、准备工作请确保您安装了Java运行时环境8+。你可以使用终端、shell或命令行来验证:java–version二、安装部署Camunda下载camunda-bpm7.15稳定版。https://downloads.camunda.cloud/release/camunda-bpm/run/7.15/CamundaPlatformRun是CamundaPlatform的预打包发行版,包括Camundawebapps(Cockpit,Tasklist,Admin),RE

    2022年10月19日
    2
  • c语言编程 sort()什么意思,void sort在C语言中什么意思?「建议收藏」

    c语言编程 sort()什么意思,void sort在C语言中什么意思?「建议收藏」void是C语言中的一个关键字,其含义因其应用形式不同,一般分为两种:void和void*void的字面意思是“无类型”,void*则为“无类型指针”,void*可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:这行语句编译时会出错,提示“illegaluseoftype’void’”。不过,即使voida的编译不会出错,…

    2022年5月12日
    50
  • nfs 文件句柄_NFS端口

    nfs 文件句柄_NFS端口上一篇文章中我们以REMOVE请求为例讲解了NFS请求的处理过程,其中提到了文件句柄的概念,NFS需要根据文件句柄查找一个文件,这篇文章中我们就来聊聊文件句柄。在普通的文件系统中,我们用文件索引节点编号(ino)表示一个文件。ino就是一个数字,ino保存在磁盘中,整个文件系统中任何两个文件的ino都不相同,因此给定一个ino,我们就能找到对应的文件。当使用NFS文件系统时就出现问题了,我们无法通

    2022年10月18日
    4
  • 绘制自己的人际关系图简单_网络给人际关系带来的影响

    绘制自己的人际关系图简单_网络给人际关系带来的影响如何系统的绘制自己的人际关系网络图?人际关系网络的分类对于人际关系网络,国内外研究比较多的是社交网络,社交网络分双向和单项,比如脸书,微信就是双向(add),微博,Twitter就是单向(flower)。我个人把双向网络归纳为强关系网络,在人际关系网中是不容易破裂的,两个人互加为好友,若干年后还是好友!单向网络是弱关系网络,在人际关系网络中是容易断裂的,你某天关注了某位明星,也许从此以后你都没在看…

    2025年7月9日
    5
  • mysql创建视图sql语句_MySQL 视图

    mysql创建视图sql语句_MySQL 视图视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以大大降低查询的重复性。

    2025年8月1日
    3
  • SFTP第一篇——搭建SFTP Server

    SFTP第一篇——搭建SFTP Server一、Mac搭建SftpServer1、检查ftp工具打开命令行,输入“ftp–help”,检查是否已经安装ftp工具。如果没有,通过以下命令安装: brewinstalltelnet brewinstallinetutils brewlink–overwriteinetutils 如果没有brew,通过以下命令安装:/usr/bin/…

    2022年10月21日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号