En Java, l'accès aux ressources regroupées dans les fichiers JAR peut être difficile. Bien que le contenu des ressources en streaming soit simple, l'obtention d'un chemin de fichier accessible peut s'avérer difficile.
Une approche tente de créer un objet File à l'aide de la méthode getResource :
ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("config/netclient.p").getFile());
Cependant, cela échoue souvent avec une FileNotFoundException, car la ressource peut ne pas avoir de fichier correspondant sur le système de fichiers.
Comprendre la ressource Concept
Les fichiers JAR regroupent des ressources dans une archive, qui peuvent ne pas être directement accessibles en tant que fichiers physiques. Le chargeur de classe gère le chargement des ressources et peut fournir un accès via des flux.
Alternative : diffuser le contenu des ressources
Pour accéder au contenu des ressources sans chemin de fichier, utilisez :
ClassLoader classLoader = getClass().getClassLoader(); PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
Option Fichier Temporaire
Si un objet Fichier est indispensable, pensez copier le flux dans un fichier temporaire :
InputStream resourceStream = classLoader.getResourceAsStream("config/netclient.p"); File tempFile = File.createTempFile("resource", ".tmp"); try (OutputStream outputStream = new FileOutputStream(tempFile)) { resourceStream.transferTo(outputStream); }
Une fois copié, vous pouvez manipuler le fichier temporaire selon vos besoins.
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!