【JAVA学习之路 | 进阶篇】File类及常用方法

简介: 【JAVA学习之路 | 进阶篇】File类及常用方法

1.概述

(1). File类及相关的各种流,都定义在java.io包下.


(2). 一个File对象代表硬盘或网络中的一个文件或文件目录.与平台无关.


(3). File能新建,删除,重命名文件或目录.但不能访问文件本身.如果需要访问文件内容本身,需要使用输入输出流.


(4). 想要在java程序中表示一个真实存在的文件或目录,那么必须要有一个文件对象.但java中的一个文件对象,可能没有一个真实存在的文件或文件目录.

2.构造器

public File(String pathname) : 以pathname为路径创建File对象,可以是相对路径也可以是绝对路径
如果是相对路径,则默认的当前路径在系统属性user.dir中存储
 
public File(String parent, String child) : 以parent为父路径,child为子路径创建File对象
 
public File(File parent, String child) : 根据一个File对象和子文件路径创建File对象

关于路径 :

  • 绝对路径 : 从盘符开始的路径,是一条完整的路径.
  • 相对于项目目录的路径.这是一条便捷的路径.在IDEA中,main方法中文件的相对路径是相对于"当前工程Progect".而在单元测试中,其中文件的相对路径是相对于"当前模块Module".

2.常见方法

(1). 获取文件和目录的基本信息

例 :

@Test
    public void Test1() {
        File file = new File("C:\\Users\\hexua\\.vscode\\cli");//双斜杆避免转义
        //public String getName() : 获取名称
        System.out.println(file.getName());
        //public String getPath() : 获取路径
        System.out.println(file.getPath());
        //public String getAbsolutePath() : 获取绝对路径
        System.out.println(file.getAbsolutePath());
        //public String getAbsoluteFile() : 获取绝对路径表示的文件
        System.out.println(file.getAbsoluteFile());
        //public String getParent : 获取上层文件目录的路径,若无,则返回null
        System.out.println(file.getParent());
        //public long length() : 获取文件长度,如果是目录,则获取目录下的所有文件的长度
        System.out.println(file.length());
        //public long lastModified() : 获取最后一次的修改时间的时间戳,单位应该是ms
        System.out.println(file.lastModified());
    }
 
控制台
cli
C:\Users\hexua\.vscode\cli
C:\Users\hexua\.vscode\cli
C:\Users\hexua\.vscode\cli
C:\Users\hexua\.vscode
8192
1702823509151

如果File对象代表的文件或目录存在,则File对象实例初始化时,就会用硬盘中对应的文件或文件目录的信息为File对象赋值.否则除了路径和名称外,其他属性都是默认值.

(2). File类的重命名功能

@Test
    public void test8() {
        //public boolean ranameTo() : 把文件重命名为指定的文件路径
        //file1.renameTo(file2) ---> 要想返回true,file1必须存在,file2必须不存在,但file2所在的文件目录必须存在
    }

(3). 判断功能的方法

例 :

@Test
    public void Test2() {
        File file = new File("C:\\Users\\hexua\\Cloud");//双斜杆避免转义
        //public boolean exits() : 此File表示的文件或目录是否实际存在
        System.out.println(file.exists());
        //public boolean isDirectory() : 此File表示的是否是目录
        System.out.println(file.isDirectory());
        //public boolean isFile() : 此File表示的是否是文件
        System.out.println(file.isFile());
        //public boolean canRead() : 判断是否可读
        System.out.println(file.canRead());
        //public boolean canWrite() : 判断是否可写
        System.out.println(file.canWrite());
        //public boolean isHidden() : 判断是否隐藏
        System.out.println(file.isHidden());
    }
 
控制台
true
true
false
true
true
false

(4). 创建,删除功能.

@Test
    public void test7() {
        File file = new File("src/xixihaha.txt");
        try {
            //public boolean createNewFile() : 创建文件。若文件存在,返回false
            System.out.println(file.createNewFile());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        //public boolean mkdir : 创建文件目录。如果此文件目录存在,就不创建了.如果此文件目录的上层
        //目录也不存在,那么也不创建
        //public boolean mkdirs : 创建文件目录。如果此文件目录的上层不村子,也创建
        //假设codes与ideas都不存在,mkdirs方法可以创建,mkdir则不可以
        File file1 = new File("D:\\codes\\.ideas");
        
        //public boolean delect() : 删除文件或文件夹
        file.delete();
    }

至于怎么区分文件与文件夹.很简单.文件一般带后缀,如".java", ".cpp", ".jpg",而文件夹不带.

相关文章
|
12天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
52 4
|
22天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
43 17
|
12天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
16天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
32 2
|
19天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
24天前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
16 2
|
18天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
|
6月前
|
存储 安全 Java
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
86 1
|
6月前
|
存储 Java
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
|
6月前
|
Java
【JAVA学习之路 | 进阶篇】方法引用与构造器引用
【JAVA学习之路 | 进阶篇】方法引用与构造器引用