Java - ImageIO.read elérési útvonal probléma

0 értékelés
68 megtekintés
HorvMi (64 pont) kérdezte 2018. Júl 1.

Sziasztok!

Java-ban ImageIO.read-el kapcsolatban problémába ütköztem. BufferedImage-be szeretnék beolvasni png fájlokat.
Akkor ha megadom a teljes elérési útvonalat akkor jó, de ez ugyebár nem megfelelő megoldása a problémának, a jar file-ból már nem is működik, illetve azt szeretném hogy az "src" mappából tudja beolvasni és ne kelljen teljes útvonal, tehát hogy univerzális legyen. A fájlok is rendben vannak, a teljes elérési útvonal megadásával működnek.

Itt a kód részlete, itt van mindig a hiba. A first és a second nem jelentheti a problémát, teszteltem többször is a fájl nevének leírásával is.

        BufferedImage firsti = ImageIO.read(new File (first + ".png"));
        BufferedImage secondi = ImageIO.read(new File(second + ".png"));

A fájlokat elhelyeztem az "src", illetve az "src/percent_year" mappába is a kód mellé.

A hibaüzenet:

júl. 01, 2018 4:18:27 DU percent_year.Percent_year main

SEVERE: null

javax.imageio.IIOException: Can't read input file!

at javax.imageio.ImageIO.read(ImageIO.java:1301)

at percent_year.Percent_year.numberpng(Percent_year.java:125)

at percent_year.Percent_year.main(Percent_year.java:34)

Rengeteget próbálkoztam, kerestem utána a dolognak de egyelőre nincs megoldás. Ez nem működik úgy mint pl egy txt fájl beolvasása, ott működik  a rövid elérési útvonal ami közvetlen az "src" mappából indul.

Előre is köszönöm és várom a válaszokat, sokat segítene.

Milán 

1 Válasz

0 értékelés
karolyp Haladó Felhasználó (134 pont) válaszolta meg 2018. Júl 4.
HorvMi kiválasztva 2018. Júl 4.
 
Legjobb válasz

Az ilyen "erőforrás" jellegű fájlokat egy külön resources (vagy assets) mappába szoktuk rakni. (Pl. az src-vel egy szinten - a lényeg, hogy cp-n legyen.)

Ezek után be tudod olvasni a fájlt:

... = ImageIO.read(Thread.currentThread().getContextClassLoader().getResource("foto.png"));

HorvMi (64 pont) szólt hozzá 2018. Júl 4.
Köszönöm szépen.
...