关于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)「建议收藏」

    在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)「建议收藏」1.什么是UDP协议?UDP(UserDatagramProtocol)协议是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

    2022年6月3日
    37
  • 下载pycharm安装教程_最新安卓开发工具使用方法

    下载pycharm安装教程_最新安卓开发工具使用方法Pycharm可以说是一款进行Python开发功能强大的编辑器。鉴于近期很少有关最新版本的Pycharm安装教程,为了能够帮助刚刚学习Python的朋友们。宋宋老师又给大家准备了一版,会介绍Pycharm的安装和注意事项,希望能够在大家学习Python的道路上起到一点微薄之力。文章分为四部分: Pycharm简介 Pycharm下载 Pycharm安装 Pycharm配置 Pycharm简介PyCharm是由JetBrains打造的一款PythonIDE,J

    2022年8月28日
    3
  • java 卸载_java安装与卸载[通俗易懂]

    java 卸载_java安装与卸载[通俗易懂]1.安装JDK进行安装,安装过程中会有两次选择安装目录的时候,第一次选择的是jdk(java开发工具包),第二次选择的是jre(java的运行环境)我的安装目录:【我都使用的默认目录,占用内存并不大】jdk的C:\ProgramFiles\Java\jdk1.8.0_281\jre的C:\ProgramFiles\Java\jdk1.8.0_2812.设置环境变量1)JAVA_HO…

    2022年5月19日
    34
  • 初识不知曲中意,再听已是曲中人下一句是什么_调用action方法出错

    初识不知曲中意,再听已是曲中人下一句是什么_调用action方法出错动作类是多例的,每次动作访问,动作类都会实例化。所以是线程安全的。在每次动作执行前,核心控制器StrutsPrepareAndExecuteFilter都会创建一个ActionContext和ValueStack对象。且每次动作访问都会创建。这两个对象存储了整个动作访问期间用到的数据。并且把数据绑定到了线程局部变量(ThreadLocal)上了。所以是线程安全的。contextMap使用struts内置标签<s:debug>查看contextMap数据利用ActionCo.

    2022年9月9日
    0
  • C++数据结构——队列「建议收藏」

    C++数据结构——队列「建议收藏」C++数据结构——队列参考博客:http://www.cnblogs.com/QG-whz/p/5171123.htmlhttp://www.169it.com/article/2718050585107790752.html1、队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:(1)队列中的数据元素遵循“先进先出”(FirstInFirstOut)的原则,简称FIFO结构;(…

    2022年5月5日
    116
  • 压力测试tps是啥意思_高并发压力测试

    压力测试tps是啥意思_高并发压力测试最近在对代码进行压力测试,这里整理一下压测中的指标和方法。文章目录1压力测试中的指标1.1TPS1.2QPS1.3平均处理时间(RT)1.4并发用户数(并发量)1.5换算关系1.5TPS和QPS的区别2压力测试方法3相关文档1压力测试中的指标1.1TPSTPS即TransactionsPerSecond的缩写,每秒处理的事务数目。一个事务是指一个客户机向服…

    2022年4月19日
    93

发表回复

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

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