Comment détecter de manière fiable les types de fichiers?

Objectif: déterminer si le fichier est d’un type donné (XML, JSON, Propriétés, etc.)

Prenons le cas de XML – Jusqu’à ce que nous ayons rencontré ce problème, l’approche d’exemple suivante fonctionnait correctement:

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

Comme prévu, lorsque XML est correctement formé, le test réussit et la méthode renvoie true. Si quelque chose de mauvais se produit et que le fichier ne peut pas être analysé, false sera renvoyé.

Cela se casse cependant lorsque nous traitons avec un fichier XML mal formé (XML quand même).

Je préfère ne pas m’appuyer sur l’extension .xml (échec tout le temps), rechercher une chaîne le fichier, etc.

Y a-t-il une autre façon de gérer cela?

Que devriez-vous voir dans le fichier pour “soupçonner que ce soit du XML même si DocumentException été intercepté”. Ceci est nécessaire à des fins d’parsing.