Ez - archiv

Ön új dolgozó a jar-fájlokat? Ez az osztály segít!

A legtöbb Java programozók jól ismerik az előnyeit használja jar-fájl köti össze az összes erőforrás (azaz class fájlok, hangok és képek) teszik ki a megoldást a Java. (Ha nem ismeri a jar-fájl, kérjük, olvassa el a „Források” című részben.). Azok, akik csak most kezdődött, hogy tartalmazza jar-fájlokat egy sor eszközt használják gyakran kérték, hogyan lehetséges, hogy kibontsa a kép a JAR-fájlt. Mi lesz válaszolni erre a kérdésre, és ad egy fokozat, ami rendkívül egyszerű kitermelése semmilyen forrást egy jar-fájl!

Loading GIF-képet

Tegyük fel, hogy van egy jar-fájl, amely több fájlt gif képeket szeretnénk használni az alkalmazás. Itt van, hogyan lehet alkalmazni a képfájlt egy jar-fájl használatával JarResources:

Ez a kódrészlet megmutatja, hogy mi is létrehozhatunk egy objektumot JarResources. inicializált alapján jar-fájl, amely az erőforrások, amelyek használata vagyunk kíváncsiak, - Images.jar. Ezután használja getResource () metódus JarResources. hogy a nyers adatokat a logo.gif fájl createImage () metódus a AWT könyvtár.

Megjegyzés: a nevek

JarResource - egy viszonylag egyszerű példa arra, hogyan lehet használni a különböző Java 1.1 manipulálni JAR és a zip-archívumok.

Egy rövid megjegyzés a neveket. Támogatás archiválás Java ténylegesen megkezdte a népszerű zip formátumban (ld. „A Java Tipp: archív fájlokat, hogy gyorsítsák fel applet loading”). Tehát először, amikor végre Java archív fájlokat támogatja az összes osztályok, stb helyeztük java.util.zip csomagban Ezek az osztályok általában kezdeni «Zip». De valahol az úton, hogy a Java 1.1, úgy döntött, hogy megváltoztatja a nevét, az archívumból, a közvetlenül kapcsolódó Java. Ezért, amit most hívja a jar-fájl lényegében - zip-fájlokat.

Ez hogy működik

Fontos adatok mezők JarResources osztályú használt nyom és tárolja a tartalmát az említett jar-fájl:

Tehát, ha létrehoz egy példánya a név van beállítva jar-fájl, majd felhívja a init () metódus. ami nem minden a munka:

init () metódus egyszerűen betölti a tartalmát a jar-fájl egy hash (hivatkozással, hogy nevében az erőforrás).

Ez egy meglehetősen nehézkes eljárás, úgyhogy osztani. Zipfile osztály ad nekünk az alap hozzáférést a fejléc információt jar / zip-archívum. Ez hasonló a könyvtár adatait a fájlrendszerben. Itt kap egy listát az összes elem és hozzon létre egy zipfile hash nevű htSizes a méret az egyes erőforrások az archívumban:

Akkor térjünk vissza az archívumból ZipInputStream osztályba. Class ZipInputStream ad nekünk mindent el kell olvasni minden egyes forrás az archívumban. Azt olvassuk a pontos bájtok számát az archív alkotó egyes erőforrások és tárolja ezeket az adatokat egy hash nevű htJarContents hozzáférést az erőforrás neve:

Megjegyezzük, hogy a használt név azonosít minden erőforrás az erőforrás elérési útját az archívumban, és nem például a nevét az osztály a csomagban - azaz ZipEntry osztályt java.util.zip csomagot kell az úgynevezett „java / util / zip / ZipEntry” . helyett „java.util.zip.ZipEntry”.

Az utolsó fontos része a kód - a tesztpilóta. Ez egy egyszerű alkalmazás, amely a nevét a jar / zip-archívum és az erőforrás nevét. Aztán megpróbálja megtalálni az erőforrás az archívumban, és jelenti a siker vagy kudarc:

Most már van egy osztály, amely elősegíti az erőforrások felhasználását, csomagolva egy korsó-fájlokat.

Gyakorlatok az olvasó

Most, hogy tudjuk, hogyan kell kivonat források az archív, itt van néhány területen, amit lehet felfedezni, módosítani és kiterjeszti az osztály JarResources:

  • Ahelyett, hogy letölti a teljes tartalmát a build, nem lusta betöltést. Ha a jar-fájl nagy, nem lehet elég memória betölteni az összes fájlt fordításkor.
  • Ahelyett, hogy egy egyszerű módszer, mint a megosztott getResource (). tudtuk biztosítani egyedi hozzáférési módszerek megfelelő egyes források - például getImage (). Ez visszatér Java objektum parancsot. getClass (). amely visszaadja a Java osztály objektum (egy speciális osztálybetöltő), és így tovább. Ha a jar-fájl elég kicsi, akkor előre össze mind a források alapján a kiterjesztés (.gif. Osztály, és így tovább).
  • Egyes módszerek információt szolgáltathatnak a leginkább ez jar-fájl (alapvetően közrefogja zipfile), beleértve: a számos jar / zip bejegyzéseket; enumerátort amely visszaadja az összes erőforrás nevét; hozzáférés elemfüggvényei hossza (és egyéb jellemzők) Egy adott bejegyzés; hozzáférési módszer segítségével az index, és mások.
  • JarResources lehet hosszabbítani használatra alma. Az applet paraméterek és URLConnection osztályban. Az üveg tartalmát-fájlokat lehet betölteni a hálózatról, és nem fájlokat megnyitni a helyi fájlokat. Emellett tudjuk kiterjeszteni ezt az osztályt, mint egy különleges Java-kezelő tartalmat.

következtetés

Ha akarta, hogy megtanulják, hogyan kell kivonat képeket egy jar-fájl, most már megtanulta. A rendszer segítségével egy új osztály, akkor most már nem csak a képek feldolgozására a jar-fájlokat, hanem eltávolítjuk a jar-archiválási az erőforrásokat.

Arthur Choi jelenleg is dolgozik az IBM, mint programozó és tanácsadó. Dolgozott több vállalat, köztük a Samsung Network Laboratóriumi és Mitre. Különböző projektek, amelyen dolgozott van egy kliens-szerver rendszerek, elosztott számítástechnikai és hálózati menedzsment. Valaha a különböző nyelvek különböző operációs rendszerek. Elkezdett programozás 1981 FORTRAN IV és a COBOL. Később költözött C és C ++, valamint két éve dolgozik a Java. Ő érdeklődési területet, főleg, Java-alkalmazás adatbankok alapján WAN hálózatok és párhuzamos és elosztott az interneten keresztül (az ágens szoftver).