Comment lire plusieurs fichiers de ressources avec le même nom dans différents Pots?
Si il y a deux fichiers JAR dans le classpath, les deux contenant une ressource nommée "config.les propriétés" dans sa racine. Est-il un moyen de récupérer les deux fichiers similaire à getClass().getResourceAsStream()
? L'ordre n'est pas pertinent.
Une alternative serait de charger chaque fichier de propriétés dans le chemin de classe qui correspondent à certains critères, si cela est possible à tous.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin
chargeur de classe.getResources(nom)
(ou la version statique
chargeur de classe.getSystemResources(nom)
).Mais malheureusement il y a un problème connu avec des ressources qui ne sont pas à l'intérieur d'un "répertoire". E. g.
foo/bar.txt
est bien, maisbar.txt
peut être un problème. C'est bien décrit dans le Printemps de Référence, même si elle n'est pas une source de problème particulier.Mise à jour:
Voici une méthode d'assistance qui retourne une liste de InputStreams:
Utilisation:
URL
classe a unopenStream
méthode qui renvoie un InputStream pour cette URL. Cela devrait être tout ce dont vous avez besoin.les fichiers jar sont des fichiers zip.
Ouvrir le fichier à l'aide de java.util.zip.ZipFile
Puis énumérer ses entrées à la recherche pour les propriétés de fichier que vous voulez.
Lorsque vous avez l'entrée, vous pouvez obtenir de ses flux avec .getInputStream()