如何检查java中的文件类型

时间:2014-08-14 01:26:51

标签: java file-type

如何检查文件版本是.gz还是.bzip2。我在File Java文档中搜索但无法找到任何方法。你能告诉我吗?

我的要求是在UI上显示文件,如果.txt不存在,则检查.gz是否存在,如果不存在,则检查.bzip2文件是否存在,因此我想查看扩展名文件。我假设我需要查看文件类型。

5 个答案:

答案 0 :(得分:6)

您可以使用 Files Guava实用程序,并使用Files.getFileExtension(String String fullName)的方法

System.out.println(Files.getFileExtension("C:\\fileName.txt"));

输出结果为:

txt

源代码非常简单,

public static String getFileExtension(String fullName) {
    checkNotNull(fullName);
    String fileName = new File(fullName).getName();
    int dotIndex = fileName.lastIndexOf('.');
    return (dotIndex == -1) ? "" : fileName.substring(dotIndex + 1);
}

答案 1 :(得分:3)

答案 2 :(得分:1)

Java 7提供了返回

FileTypeDetector#probeContentType(Path)
  

[...]多用途Internet邮件的字符串形式   RFC 2045:多用途定义的扩展(MIME)内容类型   Internet邮件扩展(MIME)第一部分:Internet邮件的格式   身体。该字符串必须根据语法中的语法进行解析   RFC 2045。

如果失败了,你就没有多少选择。您可以检查扩展名(不安全,因为文件可以有任何名称)或尝试将其解析为gz或bzip2内容,以及哪个成功是正确的。

答案 3 :(得分:1)

以编程方式确定文件类型可能会非常棘手,并且已经提出并实施了许多基于内容的文件识别方法。 Java中有几种可用于检测文件类型的实现,其中大多数实现主要或完全基于文件'扩展

这是LINK

答案 4 :(得分:0)

尝试这样的事情

String extension = "";
int i = fileName.lastIndexOf('.');
if (i >= 0) { extension = fileName.substring(i+1); }

会产生不包括"的扩展名。"所以Notepad.txt这个语法会产生txt ---或者word.docx这个语法会产生docx