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 )));
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.
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();
Le InputStream peut ensuite être utilisé pour initialiser le InputSource pour l'analyseur XML :
xr.parse( new InputSource( is ));
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!