JAVA BIO File 文件

简介: 【1月更文挑战第2天】JAVA BIO File 文件

JavaIOAPI中的Filejava.io.File允许访问底层文件系统。使用JavaFile类,可以:

  • 检查是否存在文件或目录。
  • 如果目录不存在,创建一个目录。
  • 读取文件的长度。
  • 重命名或移动文件。
  • 删除文件。
  • 检查路径是文件还是目录。
  • 读取目录中的文件列表。

注意:JavaFile类只允许您访问文件和目录元数据。

如果您需要读取或写入文件的内容,则应使用FileInputStreamFileOutputStreamRandomAccessFile

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

2.1 创建 File 实例:

  • File(String filePath)
  • File(String parenPath, String childPath)
  • File(File parentFile, String childPath)

注意:路径分隔符:

  • Windows:\\
  • Unix:/

在IDEA中,如果使用JUnit单元测试方法测试,相对路径即为当前Module。如果使用main()测试,相对路径即为当前的Project

File file = new File("C:\\TestCodeProject\\test.txt");

File类相关API

  • getAbsolutePath():获取当前File文件存在的绝对路径
  • getPath():获取路径
  • getName():获取名称
  • getParent():获取上层文件目录路径。若无,则返回null
  • length():获取文件长度(如:字节数)。不能获取目录的长度。
  • lastModified():获取最后一次的修改时间,毫秒值

适用于文件目录方法:

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

2.2 检查文件和目录存在:

可以通过exists()方法测试File(文件或者目录)是否存在。返回一个boolean类型的值表示存在与否。

File file = new File("c:\\data\\input-file.txt");
boolean fileExists = file.exists();

2.3 创建文件目录:

File类提供了两个创建文件目录的APImkdir()mkdirs()

  • mkdir():只能创建一级目录,返回一个Boolean类型标识文件目录是否创建成功。
File file = new File("hello");
boolean success = file.mkdir();
  • mkdirs():创建多级目录,在创建目录的过程中会把缺少的所有目录层级都创建出来
File file = new File("hello\\test\\01");
boolean mkdir = file.mkdirs();

2.4 获取文件大小:

File提供了可以读取文件所占字节数量APIlength()

File file = new File("test.txt");
long length = file.length();

2.5 移动、重命名文件和目录:

可以通过renameTo()方法将文件移动到指定的目录,或者移动到当前目录重命名文件。

File file = new File("test.txt");
boolean success = file.renameTo(new File("test-move.txt"));


delete()方法可以直接删除文件和文件目录:

File file = new File("c:\\data\\input-file.txt");
boolean success = file.delete();

Java提供Filedelete()方法只能在目录为空时删除该目录。要删除包含文件和子目录的目录,必须遍历该目录并首先删除所有文件和子文件夹,然后才能删除根目录。此迭代必须递归执行,因此您还可以删除子目录及其子目录的所有内容。否则,根目录的删除将失败。

这里提供了一个Java方法,可以递归地删除一个目录及其所有子目录及其文件:

public static boolean deleteDir(File dir){
    File[] files = dir.listFiles();
    if(files != null){
        for(File file : files){
            if(file.isDirectory()){
                deleteDir(file);
            } else {
                file.delete();
            }
        }
    }
    return dir.delete();
}

2.7 判断文件还是文件目录:

通过isDirectory()方法判断一个File实例是文件还是目录:

File file = new File("c:\\data");
boolean isDirectory = file.isDirectory();

2.8 读取文件和目录列表:

可以通过调用list()方法或listFiles()方法来获取目录中所有文件的列表。list()方法返回一个String数组,其中包含file对象所指向目录的文件名和/或目录名。listFiles()返回一个file对象数组,表示file所指向目录中的文件或文件夹。

File file = new File("c:\\data");
String[] fileNames = file.list();
File[]   files = file.listFiles();
相关文章
|
6月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
476 6
|
6月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
276 1
|
9月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
273 0
|
9月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
657 0
|
9月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
423 14
|
10月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
636 5
|
10月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
533 0
|
Java
JAVA读取文件的几种方法
喜欢的朋友可以关注下,粉丝也缺。 InputStreamReader+BufferedReader读取字符串 InputStreamReader 将字节流转换为字符流。
1472 0
[Java]读取文件方法大全
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容 4、随机读取文件内容 public class ReadFromFile {    /**     * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
857 0
下一篇
开通oss服务