【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",而文件夹不带.

相关文章
|
3月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
362 0
|
3月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
400 5
|
3月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
316 18
|
3月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
382 7
|
3月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
256 1
|
3月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
216 1
|
3月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
242 4
|
3月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
334 5
|
3月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
230 1
|
3月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
245 1