Archief - [Java] bestand uitlezen uit executable jar file.

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

tha_rippa1be

Legacy Member
Ik zou in mijn programma een html bestand willen inlezen.
In de IDE (eclipse) werkt dit perfect, ik gebruik een BufferedReader waarmee ik de file inlees.
Code:
BufferedReader br = new BufferedReader(new FileReader('html.htm'));
Hij beschouwt de projectfolder als root.
Code:
Projectfolder
   -bin
      //class bestanden
   -src
      //.java bestanden
   html.htm
Dat werkt allemaal.
Maar als ik het project naar een executable jar omzet:
Code:
.jar
   -META-INF
      MANIFEST.MF
   //class files
   html.htm
beschouwt hij de jar niet als root, maar de map waar de jar inzit.
Hij gaat dus achter html.htm zoeken in de map waar de jar inzit, niet in de jar zelf.


Ik heb dit gevonden: http://ubuntuforums.org/showthread.php?t=152453
Het probleem lijkt mij hetzelfde, enkel dat hij een afbeelding wilt uitlezen en ik de inhoud van een html bestand.
Ik heb de gegeven oplossing proberen om te zetten naar wat ik nodig heb, maar ik krijg het niet aan de praat.

Is het mogelijk om een bestand in een jar uit te lezen met een BufferedReader, en if not hoe doe ik dat dan wel?

Da Turtle

Legacy Member
Files uit een jar lezen kan je doen met een getResourceAsStream zoals er op de link staat. De getResourceAsStream geeft een InputStream terug, terwijl de constructor van BufferedReader een reader vraagt. InputStreamReader is een reader die InputStreams kan lezen. In plaats van new FileReader("bestand"), moet je dus new InputStreamReader(getResourceAsStream("bestand in jar"))

tha_rippa1be

Legacy Member
Da Turtle zei:
Files uit een jar lezen kan je doen met een getResourceAsStream zoals er op de link staat. De getResourceAsStream geeft een InputStream terug, terwijl de constructor van BufferedReader een reader vraagt. InputStreamReader is een reader die InputStreams kan lezen. In plaats van new FileReader("bestand"), moet je dus new InputStreamReader(getResourceAsStream("bestand in jar"))

Bedankt , werkt perfect nu :)

Code:
BufferedReader br = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("html.htm")));
String line = br.readLine();
while(line!=null){
	output+=line + "\n";
	line = br.readLine();
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan