Maison > Java > javaDidacticiel > Pourquoi FileReader ne parvient-il pas à lire le XML à partir d'un JAR Java et comment puis-je y remédier ?

Pourquoi FileReader ne parvient-il pas à lire le XML à partir d'un JAR Java et comment puis-je y remédier ?

Susan Sarandon
Libérer: 2024-12-09 08:53:06
original
572 Les gens l'ont consulté

Why Does FileReader Fail to Read XML from a Java JAR, and How Can I Fix It?

Dépannage des erreurs de lecture des fichiers de ressources à partir des fichiers JAR Java

Lors de l'accès aux ressources à partir des fichiers JAR, les développeurs rencontrent souvent des difficultés. Un de ces problèmes survient lors de la tentative de lecture de fichiers XML à partir d'un JAR à l'aide d'un FileReader, entraînant une erreur "FileNotFoundException".

Dans ce cas spécifique, le développeur récupère correctement l'URL du fichier XML mais rencontre une erreur. en le transmettant à un FileReader. Cela suggère que la méthode de récupération d'URL est fonctionnelle. Cependant, le problème réside dans les étapes suivantes :

XMLReader xr = XMLReaderFactory.createXMLReader();
xr.setContentHandler( this );
xr.setErrorHandler( this );
xr.parse( new InputSource( new FileReader( filename )));
Copier après la connexion

Le FileReader nécessite un chemin de fichier comme argument, alors que l'URL obtenue par getClass().getResource() pointe vers une ressource dans le JAR.

Solution

Pour résoudre ce problème, utilisez la méthode java.lang.Class.getResourceAsStream(String), qui renvoie un InputStream qui peut être utilisé pour lire la ressource :

URL url = getClass().getResource("/xxx/xxx/xxx/services.xml");
InputStream is = url.openStream();
Copier après la connexion

Le InputStream peut ensuite être utilisé pour initialiser le InputSource pour l'analyseur XML :

xr.parse( new InputSource( is ));
Copier après la connexion

En utilisant getResourceAsStream, le développeur peut lire avec succès les ressources XML à partir des fichiers JAR, éliminant l'erreur "FileNotFoundException".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal