La lecture d'un fichier de ressources à partir de l'intérieur de jar

Je voudrais lire une ressource à partir de l'intérieur de mon pot comme suit:

File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferredReader reader = new BufferedReader(new FileReader(file));

//Read the file

et il fonctionne très bien lors de l'exécution dans Eclipse, mais si je l'exporter dans un bocal de la course il y est une IllegalArgumentException:

Exception in thread "Thread-2"
java.lang.IllegalArgumentException: URI is not hierarchical

et je ne sais pas vraiment pourquoi, mais avec quelques essais j'ai trouvé si je change

file = new File(getClass().getResource("/file.txt").toURI());

à

file = new File(getClass().getResource("/folder/file.txt").toURI());

alors il fonctionne à l'inverse (il travaille dans le bocal mais pas de l'éclipse).

Je suis en utilisant Eclipse et le dossier avec mon fichier est dans un dossier de classe.

  • Si vous voulez lire des fichiers d'un répertoire dans le bocal avec les numéros de fichiers, voir Stackoverflow-Link
  • Je ne suis pas sûr que la question initiale a été impliquant Printemps. Le lien dans le commentaire précédent fait référence à un Ressort de réponse spécifique à partir d'une question différente. Je crois getResourceAsStream est encore plus simple et plus portable solution au problème.
InformationsquelleAutor PrinceCJC | 2013-12-05