目标:给定文件,确定它是否属于给定类型(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/