【Java】File类

本文详细介绍了Java中的File类,包括其用于表示文件或目录、构造器的使用、路径分隔符的处理、文件属性的获取、文件操作如创建、删除、重命名,以及判断文件状态的方法。通过示例代码展示了File类的各种功能,帮助理解如何在Java中进行文件和目录的操作。

File类

  • File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)
  • File类声明在java.io包下
  • File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。
  • 后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".

路径分隔符

相对路径:相较于某个路径下,指明的路径。
绝对路径:包含盘符在内的文件或文件目录的路径

路径中的每级目录之间用一个路径分隔符隔开。

路径分隔符和系统有关:

  • windows和DOS系统默认使用“\”来表示

  • UNIX和URL使用“/”来表示

  • Java程序支持跨平台运行,因此路径分隔符要慎用。

  • 为了解决这个隐患,File类提供了一个常量:

  • public static final String separator。根据操作系统,动态的提供分隔符。

File file2 = new File("d:" + File.separator + "atguigu" + File.separator + "info.txt");

如何创建File类实例

构造器:

    File(String filePath文件路径)
    File(String parentPath上层文件目录路径,String childPath文件夹路径)
    File(File parentFile文件上层文件目录路径,String childPath文件夹路径)
public void test1(){
    //构造器1
    File file1 = new File("hello.txt");//相对于当前module
    File file2 =  new File("D:\\workspace_idea1\\JavaSenior\\day08\\he.txt");转义字符

    System.out.println(file1);
    System.out.println(file2);

    //构造器2:
    File file3 = new File("D:\\workspace_idea1","JavaSenior");
    System.out.println(file3);

    //构造器3:
    File file4 = new File(file3,"hi.txt");
    System.out.println(file4);
}

常用方法

获取

public String getAbsolutePath():获取绝对路径

public String getPath() :获取路径

public String getName() :获取名称

public String getParent():获取上层文件目录路径。若无,返回null

public long length() :获取文件长度(即:字节数)。不能获取目录的长度。

public long lastModified() :获取最后一次的修改时间,毫秒值

public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组

public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组

如下的两个方法适用于文件目录:

public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组
public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组

重命名:

public boolean renameTo(File dest):把文件重命名为指定的文件路径

比如:file1.renameTo(file2)为例:要想保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在。

public void test4(){
    File file1 = new File("hello.txt");
    File file2 = new File("D:\\io\\hi.txt");

    boolean renameTo = file2.renameTo(file1);
    System.out.println(renameTo);

}

判断功能

public boolean isDirectory():判断是否是文件目录

public boolean isFile() :判断是否是文件

public boolean exists() :判断是否存在

pulic boolean canRead() :判断是否可读

publi boolean canWrite() :判断是否可写

public boolean isHidden() :判断是否隐藏

创建

public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false

public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。

public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建

注意事项:如果你创建文件或者文件目录没有写盘符路径,那么,默认在项目路径下

删除

public boolean delete():删除文件或者文件夹

删除注意事项:

Java中的删除不走回收站

要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录

<think>首先,用户要求使用中文回答问题。问题主题是“java File”,所以我需要解释Java中的File。 关键点:回答完问题后,必须提出3-5个相关问题,并以“§§相关问题§§”开头。相关问题必须输出在回答的末尾,且不能缺少。第一行必须是完整的“§§相关问题§§”,不能换行分散。 示例格式显示: - 先回答问题(例如,解释快速排序并给出代码)。 - 然后以“§§相关问题§§”开头,列出3-5个问题。 所以,我的回答结构: 1. 解释Java File。 2. 在末尾,添加“§§相关问题§§”,然后列出3-5个相关问题。 现在,内容: - Java File:在Java中,Filejava.io包的一部分,用于表示文件和目录的路径名。它允许创建、删除、重命名文件和目录,以及查询文件属性(如大小、修改时间等)。但它不直接处理文件内容;对于内容操作,需要使用流FileInputStream或FileOutputStream。 我需要确保回答全面但简洁。 然后,相关问题:基于用户的问题“java File”,我应该提出相关问题来扩展知识或深化理解。例如: 1. Java File如何创建新文件? 2. FileFiles有什么区别? 3. 如何处理文件路径在Java中? 4. File的主要方法有哪些? 5. 为什么File被弃用或推荐使用其他? 用户指定3-5个,所以我准备3-5个。 输出格式: - 回答部分:用中文解释。 - 然后,直接添加“§§相关问题§§”,后面跟问题列表,每个问题以数字点开头(如1. ···)。 示例中是: §§相关问题§§ 1. ··· 2. ··· 3. ··· 所以,我必须严格遵守:第一行是“§§相关问题§§”,没有换行或分散。 最后,确保所有内容符合规则,否则无效。 大纲我的回答: 1. 解释Java File: - 定义:Filejava.io包中的一个,用于处理文件和目录的路径。 - 功能:可以创建、删除文件,检查文件是否存在,获取文件属性等。 - 注意:File代表文件内容;对于读写,需要使用流。 - 可能给出一个简单代码示例(尽管用户没有指定,但示例中有代码,所以我应该包括一个)。 用户问题只是“java File”,没有指定代码,但示例中有代码,所以我包括一个简单代码片段来演示。 例如: ```java import java.io.File; public class FileExample { public static void main(String[] args) { File file = new File("example.txt"); if (file.exists()) { System.out.println("File exists!"); } else { System.out.println("File does not exist."); } } } ``` 然后,相关问题: 1. File的主要方法有哪些? 2. 如何在Java中读取文件内容? 3. File和Path有什么区别? 4. 为什么Java引入了Files? 5. 如何处理文件权限在Java中? 确保3-5个。 现在,用中文写回答。</think>Java File是`java.io`包中的一个核心,用于表示文件和目录的路径名。它不直接处理文件内容(如读写),而是提供方法来操作文件系统对象,例如创建、删除、重命名文件或目录,以及查询文件属性(如大小、修改时间、权限等)。File基于平台无关的路径字符串工作,但需要注意,它已部分被Java 7引入的`java.nio.file.Path`和`Files`取代,后者提供更现代、功能更丰富的API。 ### 基本用法示例: - 创建File对象:`File file = new File("path/to/file.txt");` - 常用方法: - `exists()`:检查文件或目录是否存在。 - `createNewFile()`:创建新文件(如果不存在)。 - `delete()`:删除文件或空目录。 - `isDirectory()`:判断是否为目录。 - `length()`:获取文件大小(字节)。 ```java import java.io.File; public class FileDemo { public static void main(String[] args) { File file = new File("test.txt"); try { if (file.createNewFile()) { System.out.println("文件创建成功!"); } else { System.out.println("文件已存在或创建失败。"); } } catch (Exception e) { e.printStackTrace(); } } } ``` 注意:File在处理文件内容时,需配合流(如`FileInputStream`或`FileWriter`)使用。在Java 7及以上,推荐使用`java.nio.file`包中的`Path`和`Files`,以提高性能和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值