一尘不染

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

algorithm

目标:给定文件,确定文件是否为给定类型(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被捕获了”。出于解析目的,这是必需的。


阅读 226

收藏
2020-07-28

共1个答案