Topic copy (in case of old topic purge)
[Java] bestand uitlezen uit executable jar file.Me:
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.
BufferedReader br = new BufferedReader(new FileReader('html.htm'));
Hij beschouwt de projectfolder als root.
Projectfolder
-bin
//class bestanden
-src
//.java bestanden
html.htm
Dat werkt allemaal. Maar als ik het project naar een executable jar omzet:
.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: 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"))
Me: Bedankt , werkt perfect nu
BufferedReader br = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("html.htm")));
String line = br.readLine();
while(line!=null){
output+=line + "\\n";
line = br.readLine();
}
BufferedReader br = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("html.htm"))); while(line!=null){ output+=line + "\n"; line = br.readLine(); }
You need to login to post a comment.
