Creative Saplings

Java – Leggi un file dalla cartella delle risorse

Gennaio 9, 2021
No Comments
Di mkyong | Ultimo aggiornamento: 4 settembre 2020
Visualizzato: 1.368.612 | +4.610 pv / w

In Java, possiamo usare getResourceAsStream o getResource per leggere uno o più file da una resources cartella o root del classpath.

Il metodo getResourceAsStream restituisce un InputStream.

Il getResource restituisce un URL e normalmente lo converte in un File; Non funziona nel file JAR.

File nella cartella delle risorse

1.1 Rivedi i file in src/main/resources, successivamente accediamo ai file e stampare il contenuto del file.

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 Per impostazione predefinita, crea strumenti come Maven, Gradle oppure la pratica Java comune copierà tutti i file da src/main/resources alla radice di target/classes o build/classes. Quindi, quando proviamo a leggere un file da src/main/resources, leggiamo il file dalla radice del classpath del progetto.

1.3 Di seguito è riportata una struttura di file JAR. Di solito, i file nella cartella resources verranno copiati nella radice del classpath.

Terminal

Ottieni un file dalla cartella delle risorse.

2.1 L’esempio seguente mostra l’uso di getResourceAsStream e getResource metodi per leggere un file json/file1.json dalla cartella resources e stampare il contenuto del file.

Nota

  • Il metodo getResource non funziona nel file JAR.
  • Il getResourceAsStream funziona ovunque.
FileResourcesUtils.java

Output

Terminal

2.2 Ora comprimiamo il progetto in un file JAR e lo eseguiamo; questa volta, getResource non funzionerà e restituirà NoSuchFileException o InvalidPathException. Non possiamo leggere i file all’interno del file JAR tramite l’URL della risorsa.

Esegui il file JAR su Linux (Ubuntu), genera NoSuchFileException.

Terminal

Esegui il file JAR su Windows, genera InvalidPathException.

Terminal

PS This l’esempio utilizza il plug-in Maven maven-jar-plugin per creare il file JAR.

pom.xml

Ottieni un file dalla cartella delle risorse – Unit Test

3.1 Mettiamo le risorse di test nella cartella src/test/resources per gli unit test. Di solito, i file nelle risorse di test vengono copiati nella cartella target/test-classes.

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

3.2 Funziona allo stesso modo leggiamo il file da src/main/resources. Utilizziamo gli stessi metodi getResourceAsStream e getResource per leggere il file da src/test/resources.

FileResourcesTest.java

Output

Terminal

Recupera tutti i file da una cartella di risorse. (Ambiente NON JAR)

Se non conosciamo il nome esatto del file e vogliamo leggere tutti i file, inclusi i file delle sottocartelle da una cartella delle risorse, possiamo utilizzare NIO Files.walk per accedere e leggere facilmente i file.

4.1 L’esempio seguente utilizza Files.walk per leggere tutti i file da una cartella src/main/resources/json:

FileResourcesUtils.java

Output

Terminal

4.2 Tuttavia, lo standard Files.walk nell’esempio 4.1 non può accedere direttamente ai file nel file JAR, prova a eseguire l’esempio 4.1 in un ambiente JAR e genera FileSystemNotFoundException.

Terminal

Scarica tutti i file da una cartella di risorse. (Versione JAR)

5.1 Questo esempio mostra come Files.walk una cartella all’interno di un file JAR tramite FileSystems e URI jar:file:xxx.jar.

L’idea è:

  • File percorre la cartella all’interno di un file JAR utilizzando FileSystems e ottieni tutto il nome del file, vedi getPathsFromResourceJAR()
  • Ripeti tutto il nome del file, accedi e stampa ogni file come nell’esempio 2.1, vedi getFileFromResourceAsStream().
FileResourcesUtils.java

Output

Terminal

Scarica codice sorgente

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

$ cd java-io

  • Files.walk JavaDoc
  • CodeSource JavaDoc
  • RFC 2396 – Sintassi e formato di un URI
  • Maven – Crea file JAR
  • Zip File System Provider
  • Esempi Java Files.walk
  • Java – Ottieni il percorso di un file JAR in esecuzione

mkyong

Fondatore di Mkyong.com, ama Java e le cose open source. Seguitelo su Twitter. Se ti piacciono i miei tutorial, valuta la possibilità di fare una donazione a questi enti di beneficenza.

Articles
Previous Post

Come acquisire uno screenshot su un laptop Dell (con immagini)

Next Post

PMC (Italiano)

Lascia un commento Annulla risposta

Articoli recenti

  • Best Photography Schools In The World, 2020
  • I cittadini sovrani portano la loro filosofia antigovernativa sulle strade
  • Guida ai costi di riparazione dello stucco
  • Muckrakers (Italiano)
  • Oncologia di precisione

Archivi

  • Febbraio 2021
  • Gennaio 2021
  • Dicembre 2020
  • Novembre 2020
  • Ottobre 2020
  • Settembre 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.