Posted By

resurge on 12/12/08


Tagged

file text jar stream reader getResourceAsStream


Versions (?)

Read files from jar (getResourceAsStream)


 / Published in: Java
 

URL: http://www.9lives.be/forum/programming-gamedesign/581843-java-bestand-uitlezen-uit-executable-jar-file.html

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();  
}
  1. BufferedReader br = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("html.htm")));
  2. String line = br.readLine();
  3. while(line!=null){
  4. output+=line + "\n";
  5. line = br.readLine();
  6. }

Report this snippet  

You need to login to post a comment.