Creative Saplings

Java – Číst soubor ze složky zdrojů

9 ledna, 2021
No Comments
Od mkyong | Poslední aktualizace: 4. září 2020
Zobrazeno: 1 368 612 | +4 610 pv / w

V Javě můžeme použít getResourceAsStream nebo getResource ke čtení souboru nebo více souborů ze resources složky nebo kořene cesty ke třídě.

Metoda getResourceAsStream vrací InputStream.

getResource metoda vrátí URL a normálně ji převede na File; Nepracuje v souboru JAR.

Soubory ve složce prostředků

1.1 Zkontrolujte soubory ve src/main/resources, později k nim přistoupíme a vytiskněte obsah souboru.

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 Ve výchozím nastavení vytvářejte nástroje jako Maven, Gradle , nebo běžná praxe Java zkopíruje všechny soubory z src/main/resources do kořenového adresáře target/classes nebo build/classes. Když se tedy pokusíme načíst soubor z src/main/resources, načteme soubor z kořene třídy projektu.

1.3 Níže je struktura souborů JAR. Soubory ve složce resources se obvykle zkopírují do kořenového adresáře cesty ke třídě.

Terminál

Získejte soubor ze složky prostředků.

2.1 Následující příklad ukazuje použití getResourceAsStream a getResource metody pro čtení souboru json/file1.json ze složky resources a vytištění obsahu souboru.

Poznámka

  • Metoda getResource nefunguje v souboru JAR.
  • getResourceAsStream metoda funguje všude.
FileResourcesUtils.java

výstup

terminál

2.2 Nyní zabalíme projekt do souboru JAR a spustíme jej; getResource tentokrát selže a vrátí buď NoSuchFileException nebo InvalidPathException. Soubory uvnitř souboru JAR nemůžeme číst prostřednictvím adresy URL zdroje.

Spustit soubor JAR v systému Linux (Ubuntu), hodí NoSuchFileException.

Terminál

Spustí soubor JAR ve Windows, hodí InvalidPathException.

Terminál

PS This příklad používá plugin Maven maven-jar-plugin k vytvoření souboru JAR.

pom.xml

Získat soubor ze složky zdrojů – Test jednotky

3.1 Testovací prostředky jsme umístili do složky src/test/resources pro jednotkové testy. Soubory v testovacích prostředcích se obvykle zkopírují do složky target/test-classes.

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

3.2 Funguje stejným způsobem čteme soubor z src/main/resources. Ke čtení souboru z src/test/resources používáme stejné getResourceAsStream a getResource metody. / p>

FileResourcesTest.java

Výstup

Terminál

Získejte všechny soubory ze složky prostředků. (Prostředí NON-JAR)

Pokud neznáme přesný název souboru a chceme číst všechny soubory, včetně souborů podsložek ze složky prostředků, můžeme použít NIO Files.walk pro snadný přístup a čtení souborů.

4.1 Následující příklad používá Files.walk ke čtení všech souborů ze složky src/main/resources/json:

FileResourcesUtils.java

Výstup

Terminál

4.2 Standardní Files.walk v příkladu 4.1 nemá přímý přístup k souborům v souboru JAR, zkuste spustit příklad 4.1 v prostředí JAR a hodí FileSystemNotFoundException.

Terminál

Načíst všechny soubory ze složky prostředků. (Verze JAR)

5.1 Tento příklad ukazuje, jak Files.walk složku uvnitř souboru JAR pomocí FileSystems a URI jar:file:xxx.jar.

Myšlenka je:

  • Soubor prochází složku uvnitř souboru JAR pomocí FileSystems a získejte celý název souboru, viz getPathsFromResourceJAR()
  • Loop all the filename, access and print each file like example 2.1, see getFileFromResourceAsStream().
FileResourcesUtils.java

Výstup

Terminál

Stáhnout zdrojový kód

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

$ cd java-io

  • Files.walk JavaDoc
  • CodeSource JavaDoc
  • RFC 2396 – Syntax a formát URI
  • Maven – Vytvoření souboru JAR
  • Poskytovatel systému souborů Zip
  • Příklady Java Files.walk
  • Java – Získejte cestu k běžícímu souboru JAR

mkyong

Zakladatel webu Mkyong.com. Miluje prostředí Java a open source. Sledujte ho na Twitteru. Pokud se vám moje výukové programy líbí, zvažte darování těchto charit.

Articles
Previous Post

Jak pořídit snímek obrazovky na notebooku Dell (s obrázky)

Next Post

PMC (Čeština)

Napsat komentář Zrušit odpověď na komentář

Nejnovější příspěvky

  • Nejlepší fotografické školy na světě, 2020
  • Sovereign Citizens Take their Anti-Government Philosophy to the Roads
  • Průvodce náklady na opravy Stucco
  • Muckrakers (Čeština)
  • Precision Oncology (Čeština)

Archivy

  • Únor 2021
  • Leden 2021
  • Prosinec 2020
  • Listopad 2020
  • Říjen 2020
  • Září 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.