Miten jar-pakkauksessa olevasta tiedostosta saa OutputStreamin tai vastaavan?
Jos haluat päivittää JAR (ZIP) tiedostoa (jos oikein ymmärsin), niin sille ei muistaakseni ole valmista tekelettä standardi kirjastossa, eli helpoimmalla voisi päästä lukemalla kaikki entryt ja kirjoittamalla ne uuteen tiedostoon, ja kopioimalla vanhan päälle.
http://download.oracle.com/javase/6/docs/api/
En kyllä tiedä vääntyykö ZIP formaatti edes siihen, että voidaan ylikirjoittaa tiedostoja append menetelmällä, eli esimerkiksi niin, että saman niminen tiedosto kirjoitetaan tiedoston loppuun ja täten se ylikirjoittaisi aikaisemman tiedoston. Mutta koska on kyseessä pakkausformaatti, niin tuskimpa. Päälle kirjoittaminen taas tarkoittaisi pienempään tai samaan kokoon pakkautuvia tiedostoja, tai vaihtoehtoisesti sirpaloituvaa tiedostoa.
Sen saa tällä tavalla:
// otetaan URL jar tiedoston (josta luokka ladattiin) sisällä olevaan // resource tiedostoon ... URL url = this.getClass().getResource("tiedosto jarrin sisällä"); // ja siitä outputstream ... OutputStream outputStream = url.openConnection().getOutputStream();
Selvä. Kiitos!
Aihe on jo aika vanha, joten et voi enää vastata siihen.