关于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:
在这里插入图片描述

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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