Creative Saplings

Java – Fájl olvasása az erőforrások mappából

január 9, 2021
No Comments
Mkyong által Utolsó frissítés: 2020. szeptember 4.
Megtekintve: 1 368 612 | +4 610 pv / w

Java-ban használhatjuk a getResourceAsStream vagy getResource fájl vagy több fájl olvasásához az resources mappából vagy az osztályút gyökeréből.

A getResourceAsStream metódus egy InputStream eredményt ad vissza.

A getResource metódus egy URL értéket ad vissza, és általában átalakítja File -be; Nem működik a JAR fájlban.

Fájlok az erőforrások mappában

1.1 Tekintse át a src/main/resources fájlokat, később hozzáférünk a fájlokhoz és nyomtassa ki a fájl tartalmát.

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 Alapértelmezés szerint olyan eszközöket készítsen, mint a Maven, a Gradle , vagy a Java szokásos gyakorlata az összes fájlt átmásolja a src/main/resources fájlból a target/classes vagy a build/classes. Tehát, amikor megpróbálunk egy fájlt olvasni a src/main/resources fájlból, akkor a fájlt a projekt osztálygyökér gyökeréből olvassuk.

1.3 Az alábbiakban egy JAR fájlstruktúra található. Általában a resources mappában lévő fájlok az osztályút gyökerére másolódnak.

Terminal

Fájl letöltése az erőforrások mappából.

2.1 Az alábbi példa bemutatja a getResourceAsStream és a módszerek egy fájl json/file1.json beolvasására a resources mappából, és a fájl tartalmának kinyomtatásához.

Megjegyzés

  • A getResource módszer nem működik a JAR fájlban.
  • A getResourceAsStream módszer mindenhol működik.
FileResourcesUtils.java

Kimenet

Terminál

2.2 Most egy JAR fájlba csomagoljuk a projektet, és futtatjuk; ezúttal a getResource nem fog sikerülni, és vagy NoSuchFileException, vagy InvalidPathException értéket adja vissza. Nem tudjuk elolvasni a JAR fájlban lévő fájlokat az erőforrás URL-jén keresztül.

Futtassa a JAR fájlt Linuxon (Ubuntu), ez dobja a NoSuchFileException fájlt.

Terminál

Futtassa a JAR fájlt Windows rendszeren, és dobja a InvalidPathException fájlt.

Terminál

PS Ez A példa a Maven beépülő modult használja: maven-jar-plugin a JAR fájl létrehozásához.

pom.xml

Fájl letöltése az erőforrások mappából – Unit Test

3.1 A teszt erőforrásokat a src/test/resources mappába tesszük az egység tesztek céljából. Általában a teszt erőforrásokban lévő fájlok a target/test-classes mappába másolódnak.

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

3.2 Működik ugyanúgy olvassuk el a fájlt a src/main/resources ből. Ugyanazokat a getResourceAsStream és getResource módszereket használjuk a fájl beolvasásához a src/test/resources fájlból.

FileResourcesTest.java

Kimenet

Terminál

Az összes fájl beszerzése egy erőforrásmappából. (NON-JAR környezet)

Ha nem ismerjük a pontos fájlnevet, és az összes fájlt el akarjuk olvasni, beleértve az alkönyvtár fájlokat is egy erőforrás mappából, használhatjuk a NIO Files.walk a fájlok egyszerű eléréséhez és olvasásához.

4.1 Az alábbi példa a Files.walk fájlt használja az összes fájl elolvasásához egy mappából src/main/resources/json:

FileResourcesUtils.java

Kimenet

Terminál

4.2 Azonban a szokásos Files.walk a 4.1 példában nem tud közvetlenül hozzáférni a JAR fájl fájljaihoz, próbálja meg futtatni a 4.1 példát JAR környezetben, és ez dobja az FileSystemNotFoundException <. / p>

Terminal

Az összes fájl beszerzése egy erőforrás mappából. (JAR verzió)

5.1 Ez a példa bemutatja, hogyan lehet Files.walk mappát tárolni egy JAR fájlban a FileSystems és az URI segítségével. jar:file:xxx.jar.

Az ötlet a következő:

  • A File a , és megkapja az összes fájlnevet, lásd: getPathsFromResourceJAR()
  • Hurokolja az összes fájlnevet, hozzáférjen és nyomtassa ki az egyes fájlokat, például a 2.1 példát, lásd: getFileFromResourceAsStream().
FileResourcesUtils.java

Kimenet

Terminal

Forráskód letöltése

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

$ cd java-io

  • Files.walk JavaDoc
  • CodeSource JavaDoc
  • RFC 2396 – URI szintaxisa és formátuma
  • Maven – JAR fájl létrehozása
  • Zip fájlrendszer-szolgáltató
  • Java Files.walk példák
  • Java – Futtassa a futó JAR fájl elérési útját

mkyong

Az Mkyong.com alapítója, szereti a Java-t és a nyílt forráskódú dolgokat. Kövesse őt a Twitteren. Ha tetszik az oktatóanyagaim, fontolja meg, hogy adományozna ezeknek a jótékonysági szervezeteknek.

Articles
Previous Post

Hogyan készítsen képernyőképet egy Dell laptopról (képekkel)

Next Post

PMC (Magyar)

Vélemény, hozzászólás? Kilépés a válaszból

Legutóbbi bejegyzések

  • A világ legjobb fotóiskolái, 2020
  • A szuverén polgárok kormányellenes filozófiájukat viszik az utakra
  • Stukkó javítási költség útmutató
  • Muckrakers (Magyar)
  • Precíziós onkológia

Archívum

  • 2021 február
  • 2021 január
  • 2020 december
  • 2020 november
  • 2020 október
  • 2020 szeptember
  • 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.