如何在 Java 中获取文件类型?

10 Sept 2024 | 4 分钟阅读

在 Java 中进行文件处理的一个重要部分是弄清楚文件的类型,这在各种应用程序中都很常用。理解文件类型对于根据文件的内容或扩展名执行特定任务或验证至关重要。

这可以通过 Java 中的几种方式完成,例如检查文件扩展名、使用 File 和 Path 等内置 Java 类,或使用 Guava 或 Apache Commons IO 等库。在本节中,我们将讨论获取 Java 文件类型的各种方法,包括有关有用实现的建议以及在 Java 程序中处理文件时需要考虑的事项。

获取文件扩展名的 Java 程序

1. 使用 lastIndexOf() 和 substring() 方法

FileExtension.java

输出

txt

解释

文件对象使用 file.toString() 转换为字符串。文件扩展名由 '.' 字符分隔,使用 fn.lastIndexOf('.') 找到最后一次出现该字符的位置。

2. 目录中所有文件的文件扩展名

FileExtension.java

输出

Files                   Extension
D:\TTP Documentation\1. Cover Page and First Page.docx  docx
D:\TTP Documentation\132_camerar.docx   docx
D:\TTP Documentation\132_copyr.docx     docx
D:\TTP Documentation\132_Paper.pptx     pptx
D:\TTP Documentation\2.Certificate.docx docx
D:\TTP Documentation\3.Candidate's Declaration.docx     docx
D:\TTP Documentation\384_camerar[1].docx        docx
D:\TTP Documentation\4.Acknowledgement.docx     docx
D:\TTP Documentation\6.Contents Page.docx       docx
D:\TTP Documentation\Adobe Scan 04 Apr 2023.pdf pdf
D:\TTP Documentation\CICTN_132.pptx     pptx
D:\TTP Documentation\Text To Face Generation .docx      docx
D:\TTP Documentation\Text To Face Generation.pdf        pdf
PS C:\Users\Master's>

解释

Java 程序定义了一个目录路径,列出了指定目录 ("D:\TTP Documentation") 中的文件,并打印每个文件的名称及其扩展名。它处理目录不存在的情况,并提供清晰的输出,显示文件名和扩展名。

3. 使用 Guava 库

Guava 库通过其 Files.getFileExtension(String fileName) 函数简化了提取文件扩展名的过程。当提供 fileName 作为输入时,它会在内部管理查找 '.' 字符的最后一次出现并提取表示文件扩展名的子字符串。

FileExtension.java

输出

Files                   Extension
D:\TTP Documentation\1. Cover Page and First Page.docx  docx
D:\TTP Documentation\132_camerar.docx   docx
D:\TTP Documentation\132_copyr.docx     docx
D:\TTP Documentation\132_Paper.pptx     pptx
D:\TTP Documentation\2.Certificate.docx docx
D:\TTP Documentation\3.Candidate's Declaration.docx     docx
D:\TTP Documentation\384_camerar[1].docx        docx
D:\TTP Documentation\4.Acknowledgement.docx     docx
D:\TTP Documentation\5.Abstract.docx    docx
D:\TTP Documentation\59c22cf8b853e_Copyright form.pdf   pdf
D:\TTP Documentation\6.Contents Page.docx       docx
D:\TTP Documentation\Adobe Scan 04 Apr 2023.pdf pdf
D:\TTP Documentation\CICTN_132.pptx     pptx
D:\TTP Documentation\seminar
D:\TTP Documentation\Text To Face Generation .docx      docx
D:\TTP Documentation\Text To Face Generation.pdf        pdf

解释

为了访问指定位置的文件,代码初始化了一个 File 对象,该对象反映了目录路径 "D:\TTP Documentation"。通过迭代目录中的文件并将每个文件名转换为字符串,然后使用专有方法 (getFileExtension) 提取文件扩展名。它通过以表格形式打印每个文件名和扩展名来生成文件及其对应扩展名的列表。