Creative Saplings

Java – Lue tiedosto resurssikansiosta

tammikuu 9, 2021
No Comments
Tekijä mkyong | Päivitetty viimeksi: 4. syyskuuta 2020
Katsottu: 1368612 | +4 610 pv / w

Java-käyttöjärjestelmässä voimme käyttää getResourceAsStream tai getResource, jos haluat lukea tiedoston tai useita tiedostoja resources -kansiosta tai luokan polun juuresta.

getResourceAsStream -menetelmä palauttaa InputStream -menetelmän.

getResource menetelmä palauttaa URL ja muuntaa sen normaalisti File; Ei toimi JAR-tiedostossa.

Resurssikansion tiedostot

1.1 Tarkista src/main/resources -kansiossa olevat tiedostot, myöhemmin pääsemme tiedostoihin ja tulostaa tiedoston sisältö.

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 Rakenna oletuksena työkalut, kuten Maven, Gradle , tai tavallinen Java-käytäntö kopioi kaikki tiedostot tiedostosta src/main/resources target/classes tai build/classes. Joten kun yritämme lukea tiedostoa osoitteesta src/main/resources, luemme tiedoston projektiluokan polun juuresta.

1.3 Alla on JAR-tiedostorakenne. Yleensä resources -kansiossa olevat tiedostot kopioidaan luokan polun juurelle.

Pääte

Hae tiedosto resurssikansiosta.

2.1 Seuraava esimerkki osoittaa getResourceAsStream ja tapoja lukea tiedosto json/file1.json resources -kansiosta ja tulostaa tiedoston sisältö.

Huomautus

  • getResource -menetelmä ei toimi JAR-tiedostossa.
  • getResourceAsStream -menetelmä toimii kaikkialla.
FileResourcesUtils.java

Tulos

Pääte

2.2 Nyt pakataan projekti JAR-tiedostoon ja suoritetaan se; tällä kertaa getResource epäonnistuu ja palauttaa joko NoSuchFileException tai InvalidPathException. Emme voi lukea JAR-tiedoston sisällä olevia tiedostoja resurssin URL-osoitteen kautta.

Suorita JAR-tiedosto Linuxissa (Ubuntu), se heittää NoSuchFileException.

Pääte

Suorita JAR-tiedosto Windowsissa, se heittää InvalidPathException.

Pääte

PS Tämä esimerkki käyttää Maven-laajennusta maven-jar-plugin JAR-tiedoston luomiseen.

pom.xml

Hae tiedosto resurssikansiosta – Unit Test

3.1 Laitamme testiresurssit kansioon src/test/resources yksikötestejä varten. Yleensä testiresurssien tiedostot kopioidaan target/test-classes -kansioon.

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

3.2 Se toimii samalla tavalla luemme tiedoston kohdasta src/main/resources. Käytämme samoja getResourceAsStream – ja getResource -menetelmiä tiedoston lukemiseen src/test/resources. / p>

FileResourcesTest.java

Tulos

Pääte

Hae kaikki tiedostot resurssikansiosta. (EI-JAR-ympäristö)

Jos emme tiedä tarkkaa tiedostonimeä ja haluamme lukea kaikki tiedostot, mukaan lukien resurssikansion alikansiotiedostot, voimme käyttää NIO Files.walk tiedostojen käyttämiseen ja lukemiseen.

4.1 Alla olevassa esimerkissä Files.walk käytetään kaikkien tiedostojen lukemiseen kansiosta src/main/resources/json:

FileResourcesUtils.java

Tulos

Pääte

4.2 Vakio Files.walk esimerkissä 4.1 ei voi käyttää JAR-tiedoston tiedostoja suoraan, yritä suorittaa esimerkki 4.1 JAR-ympäristössä ja se heittää FileSystemNotFoundException.

Pääte

Hae kaikki tiedostot resurssikansiosta. (JAR-versio)

5.1 Tämä esimerkki näyttää, kuinka Files.walk kansio JAR-tiedoston sisällä FileSystems ja URI jar:file:xxx.jar.

Ajatus on:

  • File kävelee kansiota JAR-tiedoston sisällä käyttämällä FileSystems, ja hae kaikki tiedostonimet, katso getPathsFromResourceJAR()
  • Silmennä kaikki tiedostonimet, käytä ja tulosta kukin tiedosto kuten esimerkki 2.1, katso getFileFromResourceAsStream().
FileResourcesUtils.java

Tulos

Pääte

Lataa lähdekoodi

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

$ cd java-io

  • Files.walk JavaDoc
  • CodeSource JavaDoc
  • RFC 2396 – URI: n syntakse ja muoto
  • Maven – Luo JAR-tiedosto
  • Zip File System Provider
  • Java Files.walk -esimerkkejä
  • Java – Hae käynnissä olevan JAR-tiedoston polku

mkyong

Mkyong.com -yhtiön perustaja, rakastavat Java ja avoimen lähdekoodin juttuja. Seuraa häntä Twitterissä. Jos pidät opetusohjelmistani, harkitse lahjoituksen tekemistä näille hyväntekeväisyysjärjestöille.

Articles
Previous Post

Kuinka ottaa kuvakaappaus Dellin kannettavasta tietokoneesta (kuvien kanssa)

Next Post

PMC (Suomi)

Vastaa Peruuta vastaus

Viimeisimmät artikkelit

  • Maailman parhaat valokuvauskoulut, 2020
  • Suvereenit kansalaiset vievät hallitustenvastaisen filosofiansa tielle
  • Stukkokorjauskustannusten opas
  • Muckrakers (Suomi)
  • Tarkka onkologia

Arkistot

  • helmikuu 2021
  • tammikuu 2021
  • joulukuu 2020
  • marraskuu 2020
  • lokakuu 2020
  • syyskuu 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.