Results 1 to 5 of 5

Thread: Datei in jar-File lesen

  1. #1
    Master
    Join Date
    Mar 2004
    Posts
    140
    Thanks
    3
    Thanked 1 Time in 1 Post

    Datei in jar-File lesen

    Hallo Leute,

    Ich habe ein Problem damit, eine Datei zu lesen, die sich gemeinsam mit dem .class file in einem jar-Archiv befindet. Das Programm liest an einer Stelle einfach die erste Zeile der Datei "key.txt" ein:

    Code:
    public static String readKey() throws IOException {
            File f = new File("key.txt");
            BufferedReader fr = new BufferedReader(new FileReader(f));
            return fr.readLine();
        }
    Wenn ich nun sowohl die .class Datei als auch key.txt in ein jar-File packe, liest das Programm nicht die key.txt im Archiv, sondern sucht im Ordner, in dem sich das Archiv befindet, nach key.txt. Wird diese nicht gefunden, bekomme ich eine (klarerweise) eine IOException, obwohl die benötigte Datei an sich im jar-Archiv enthalten ist.

    Kann mir jemand erklären, wie ich dem Programm klar mache, dass es auch das Archiv nach key.txt durchsuchen soll? (evtl. eine bestimmte Zeile im Manifest?) Aus den guides auf java.sun.com/docs bin ich irgendwie nicht schlau geworden.

    mfg Erdös
    Sicher is des ane: A Apfel is ka Banane

  2. #2
    Super Moderator Paulchen's Avatar
    Join Date
    Oct 2004
    Location
    /home/paulchen
    Posts
    7,719
    Thanks
    931
    Thanked 1,283 Times in 867 Posts
    aus meiner abgabe für das 5. beispiel in security (machst du das auch, oder? ):
    Code:
    InputStream stream=Main.class.getResourceAsStream("/key.txt");
    if(stream!=null) {
    	InputStreamReader reader=new InputStreamReader(stream);
    	try {
    		/* lesen */
    	}
    	catch(IOException ioe) {
    		/* was auch immer */
    	}
    }
    else {
    	/* was auch immer */
    }

  3. #3
    Master
    Join Date
    Mar 2004
    Posts
    140
    Thanks
    3
    Thanked 1 Time in 1 Post
    danke für die antwort ersteinmal
    Quote Originally Posted by Paulchen
    aus meiner abgabe für das 5. beispiel in security (machst du das auch, oder? )
    Erraten .

    Quote Originally Posted by Paulchen
    Code:
    InputStream stream=Main.class.getResourceAsStream("/key.txt");
    Kannst du mir erklären wie du zu der Zeile kommst? Bei mir kann der Compiler nichts mit "Main" anfangen - "Main can not be resolved to a type"

    danke
    Sicher is des ane: A Apfel is ka Banane

  4. #4
    Super Moderator Paulchen's Avatar
    Join Date
    Oct 2004
    Location
    /home/paulchen
    Posts
    7,719
    Thanks
    931
    Thanked 1,283 Times in 867 Posts
    Quote Originally Posted by Erdös-Index 97
    Kannst du mir erklären wie du zu der Zeile kommst? Bei mir kann der Compiler nichts mit "Main" anfangen - "Main can not be resolved to a type"
    nimm statt Main einfach irgendeine klasse in deiner jar-datei. ich hab Main genommen, weil in der klasse Main die methode main steht, und key.txt aus dieser klasse heraus ausgelesen wird.

  5. #5
    Master
    Join Date
    Mar 2004
    Posts
    140
    Thanks
    3
    Thanked 1 Time in 1 Post
    Ah jetzt funktionierts! herzlichen dank
    Sicher is des ane: A Apfel is ka Banane

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •