目的:給定的文件,確定它是否是給定類型的(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
被捕獲」。這是解析目的所必需的。
均田相關:http://stackoverflow.com/questions/3600222/code-for-identifying-programming-language-in-a-text-file – PeterK 2012-03-16 14:03:44
你可以用」 t得到一個明確的答案「什麼k文件是否是?「,僅限於」我可以假裝它是X型嗎?「 (對於零個或更多個X,答案可以是「是」,而不僅僅是零或一個)。但是你可以拋出統計數據,看看是否有很多''<\w+>'(可能是XML),許多''w +「'(可能是JSON)與令牌的總數相比,否則它可能是屬性。 – harold 2012-03-16 15:12:05