java.io.FileNotFoundException in Eclipse

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • java.io.FileNotFoundException in Eclipse

    hiho

    ich habe ein problem mir eclipse:
    ich versuche daten aus einer .txt datei zu lesen, aber bekomme die ganze zeit eine java.io.FileNotFoundException.

    hier die methode:

    Quellcode

    1. private void fillArray(String file){
    2. LineNumberReader r;
    3. String line;
    4. try {
    5. r = new LineNumberReader(new FileReader(file));
    6. while((line = r.readLine()) != null){
    7. prim[r.getLineNumber() - 1] = Long.parseLong(line);
    8. }
    9. r.close();
    10. } catch (FileNotFoundException e) {
    11. e.printStackTrace();
    12. } catch (IOException e) {
    13. e.printStackTrace();
    14. }
    15. }
    Alles anzeigen


    und hier der aufruf:

    Quellcode

    1. fillArray(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI()).toString() + "/primTabelle.txt");


    so richtig verstehe ich das aber nicht, habs auch nur kopiert.

    die datei primTabelle.txt liegt im moment im src verzeichnis.

    kann mir vllt jemand erklären, wie ich das richtig machen muss, damit es auch hinterher in einer .jar funktioniert?

    mfg und danke im vorraus
    contest
    -- Ein Wettnewerb für Jugendliche Programmierer --
    Jeder Helfer ist willkommen ;)
  • Wenn du das so machst müsstest du es ins bin-Verzeichnis legen. Ansonsten ist das Basedir bei Eclpiseprojekten eine Ebene höher also ..\workspace\{projektname}. Müssete bei von Eclipse erstellten jar's auch so sein.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Jedes Class-Objekt hat eine Methoden getResourceAsStream() und getResource(). Diesen Methoden kann man einen relativen Pfad zu einer Datei übergeben. Ausgangspunkt ist die Position der Klasse im Filesystem. Bedenke, dass du beim kompilieren die zu öffnende Datei von src-Verzeichnis ins bin-Berzeichnis kopieren musst (ant-Script anpassen? Vielleicht geht es auch in den Eclipse-Einstellungen), damit Java die Datei findet. Im JAR sollte das dann auch funktionieren, wenn du die Datei dort mit hinnein legst.

    Quellcode

    1. fillArray(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI()).toString() + "/primTabelle.txt");

    Das dürfte nur funktionieren, wenn der Quelltext immer dabei ist. Wenn du nur die compilierten Class-Dateien im JAR haben willst und nicht deinen ganzen Quelltext ist das wohl der falsche Weg.