Creative Saplings

Java – Lire un fichier du dossier de ressources

janvier 9, 2021
No Comments
Par mkyong | Dernière mise à jour: 4 septembre 2020
Vue: 1,368,612 | +4 610 pv / w

En Java, nous pouvons utiliser getResourceAsStream ou getResource pour lire un fichier ou plusieurs fichiers à partir d’un dossier resources ou à la racine du chemin de classe.

La méthode getResourceAsStream renvoie un InputStream.

Le getResource renvoie un URL et le convertit normalement en File; Ne fonctionne pas dans le fichier JAR.

Fichiers dans le dossier resources

1.1 Passez en revue les fichiers dans le src/main/resources, plus tard, nous accèderons aux fichiers et imprimer le contenu du fichier.

src / main / resources / database.properties
src / main / resources / json / file1.json
src / main / resources / json / file2.json
src / main / resources / json / sub / subfile1.json

1.2 Par défaut, créez des outils comme Maven, Gradle ou une pratique Java courante copiera tous les fichiers de src/main/resources vers la racine de target/classes ou build/classes. Ainsi, lorsque nous essayons de lire un fichier depuis src/main/resources, nous lisons le fichier depuis la racine du chemin de classe du projet.

1.3 Voici une structure de fichier JAR. Habituellement, les fichiers du dossier resources seront copiés à la racine du chemin de classe.

Terminal

Récupérez un fichier dans le dossier des ressources.

2.1 L’exemple ci-dessous illustre l’utilisation de getResourceAsStream et getResource méthodes pour lire un fichier json/file1.json dans le dossier resources et imprimer le contenu du fichier.

Remarque

  • La méthode getResource ne fonctionne pas dans le fichier JAR.
  • Le getResourceAsStream fonctionne partout.
FileResourcesUtils.java

Sortie

Terminal

2.2 Maintenant, nous emballons le projet dans un fichier JAR et l’exécutons; cette fois, getResource échouera et renvoie soit NoSuchFileException soit InvalidPathException. Nous ne pouvons pas lire les fichiers à l’intérieur du fichier JAR via l’URL de la ressource.

Exécutez le fichier JAR sous Linux (Ubuntu), il lance NoSuchFileException.

Terminal

Exécutez le fichier JAR sous Windows, il lance InvalidPathException.

Terminal

PS Ceci L’exemple utilise le plugin Maven maven-jar-plugin pour créer le fichier JAR.

pom.xml

Obtenir un fichier du dossier resources – Test unitaire

3.1 Nous mettons les ressources de test dans le dossier src/test/resources pour les tests unitaires. Habituellement, les fichiers des ressources de test seront copiés dans le dossier target/test-classes.

src / test / resources / json / file1.json
src / test / resources / database.properties

3.2 Cela fonctionne de la même manière que nous lisons le fichier de src/main/resources. Nous utilisons les mêmes méthodes getResourceAsStream et getResource pour lire le fichier à partir de src/test/resources.

FileResourcesTest.java

Sortie

Terminal

Récupère tous les fichiers d’un dossier de ressources. (Environnement NON JAR)

Si nous ne connaissons pas le nom exact du fichier et que nous voulons lire tous les fichiers, y compris les fichiers de sous-dossier d’un dossier de ressources, nous pouvons utiliser le NIO Files.walk pour accéder et lire facilement les fichiers.

4.1 L’exemple ci-dessous utilise Files.walk pour lire tous les fichiers d’un dossier src/main/resources/json:

FileResourcesUtils.java

Sortie

Terminal

4.2 Cependant, la norme Files.walk dans l’exemple 4.1 ne peut pas accéder directement aux fichiers du fichier JAR, essayez d’exécuter l’exemple 4.1 dans un environnement JAR, et il lance FileSystemNotFoundException.

Terminal

Récupère tous les fichiers d’un dossier de ressources. (Version JAR)

5.1 Cet exemple montre comment Files.walk un dossier dans un fichier JAR via FileSystems et URI jar:file:xxx.jar.

L’idée est:

  • Le fichier parcourt le dossier dans un fichier JAR en utilisant FileSystems, et récupérez tout le nom de fichier, voir getPathsFromResourceJAR()
  • Bouclez tout le nom de fichier, accédez et imprimez chaque fichier comme l’exemple 2.1, voir getFileFromResourceAsStream().
FileResourcesUtils.java

Sortie

Terminal

Télécharger le code source

$ git clone https://github.com/mkyong/core-java

$ cd java-io

  • Files.walk JavaDoc
  • CodeSource JavaDoc
  • RFC 2396 – Syntaxe et format d’un URI
  • Maven – Créer un fichier JAR
  • Zip File System Provider
  • Exemples Java Files.walk
  • Java – Récupérez le chemin d’un fichier JAR en cours d’exécution

mkyong

Fondateur de Mkyong.com, adore Java et les trucs open source. Suivez-le sur Twitter. Si vous aimez mes tutoriels, pensez à faire un don à ces associations caritatives.

Articles
Previous Post

Comment prendre une capture d'écran sur un ordinateur portable Dell (avec des images)

Next Post

PMC (Français)

Laisser un commentaire Annuler la réponse

Articles récents

  • Meilleures écoles de photographie du monde, 2020
  • Les citoyens souverains apportent leur philosophie anti-gouvernement aux routes
  • Guide des coûts de réparation du stuc
  • Muckrakers (Français)
  • Oncologie de précision

Archives

  • février 2021
  • janvier 2021
  • décembre 2020
  • novembre 2020
  • octobre 2020
  • septembre 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.