java - 如何可靠地检测文件类型?

标签 java algorithm file-type

目标:给定文件,确定它是否属于给定类型(XML、JSON、属性等)

考虑 XML 的情况 - 在我们遇到这个问题之前,以下示例方法运行良好:

    try {
        saxReader.read(f);
    } catch (DocumentException e) {
        logger.warn("  - File is not XML: " + e.getMessage());
        return false;
    }
    return true;

正如预期的那样,当 XML 格式正确时,测试将通过并且方法将返回 true。如果发生错误并且文件无法解析,将返回 false。

但是,当我们处理格式错误的 XML(尽管仍然是 XML)文件时,这种情况就会中断。

我宁愿不依赖.xml扩展(一直失败),寻找 <?xml version="1.0" encoding="UTF-8"?>文件内的字符串等。

还有其他方法可以处理这个问题吗?

您必须在文件中看到什么才能“怀疑它可能是 XML,但 DocumentException 被捕获”。这是解析目的所必需的。

最佳答案

关于java - 如何可靠地检测文件类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60530942/

相关文章:

java - 如何重现可能不是两个参数接口(interface)的子类型的通用接口(interface)类型变量的 java 编译/运行时错误?

windows - 如何使用 Delphi 获取与文件扩展名关联的程序名称?

java - Spring:如何在 Profiles 中做 AND?

java - 洗牌(SPOJ/Interviewstreet)

algorithm - 1位位图数据如何转换为8位(24bpp)?

arrays - 对于每个元素,计算有多少给定子数组包含它

适用于UTF-16LE和UTF32-LE的Unicode BOM

python - 从二进制数据获取文件类型/扩展名

java - Java 会自动并行化递归函数吗?

algorithm - 两行拟合间隔