kostenloser Webspace werbefrei: lima-city


Java - Programmexterne Datei öffnen

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    toolz

    Kostenloser Webspace von toolz

    toolz hat kostenlosen Webspace.

    Ich habe ein Problem bei Java:
    Mit folgendem Codeauszug erstelle ich einen "Leser" für die Datei "Datei.txt":

    new BufferedReader(new FileReader("Datei.txt"));

    Wenn ich aber nun das Programm erstelle, möchte ich, dass die Datei im selben Ordner liegt, wie die *.jar.
    So wie es momentan ist, muss die Datei sich im *.jar befinden (glaube ich).Wie der Titel schon sagt, will ich eine "programmexterne Datei öffnen"...
    Kann mir jemand weiterhelfen?

    Beitrag zuletzt geändert: 17.1.2009 19:27:28 von toolz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    also AFAIK sollte das eigentlich so funktionieren.
    hast du es überhaupt schon probiert?
  4. Autor dieses Themas

    toolz

    Kostenloser Webspace von toolz

    toolz hat kostenlosen Webspace.

    Ja hab ich.
    Wenn du sagst, dass es so gehen kann, poste ich am besten gleich den ganzen Leseprozess...

    private String Lies() {
    BufferedReader br = null;
    try {
    br = new BufferedReader(new FileReader("Version.inf"));
    Inhalt = null;
    while ((Inhalt = br.readLine()) != null) {
    }
    } catch (IOException e) {
    } finally {
    if (br != null) {
    try {
    br.close();
    } catch (IOException e) {
    }
    }
    }
    return Inhalt;
    }
  5. um mal so in etwa bei deiner Lösung zu bleiben, habe ich folgenden Vorschlag für dich:

    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class Lesen {
    
    	public static void main(String[] args) {
    		String pfad = "C:/Version.inf"; 		// zum Beispiel
    		String derInhalt = new Lesen().lies(pfad);
    		System.out.println(derInhalt);
    	}
    
    	private String lies(String pfad) {
    		BufferedReader br = null;
    		String zeile;
    		String inhalt = "";
    		try {
    			br = new BufferedReader(new FileReader(pfad));
    			while ((zeile = br.readLine()) != null) {
    				inhalt += zeile;
    			}
    			return inhalt;
    		} catch (IOException e) {
    			return null;
    		} finally {
    			if (br != null) {
    				try {
    					br.close();
    				} catch (IOException e) {
    				}
    			}
    		}
    	}
    
    }


    Wenn es also mit der "programminternen" Datei klappt, dann brauchst du nur den Dateinamen um den Pfad zu ergänzen, wenn du "externe" Dateien benutzen willst. Hilft dir das, oder war dein problem ohnehin schon behoben?

    Beste Grüße
    b4l

    Beitrag zuletzt geändert: 18.1.2009 11:13:02 von b4l
  6. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    Also
    package tests;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class Main {
    
    
    
    
    
        
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new FileReader("test.txt"));
    		String line = "";
    		while((line = br.readLine()) != null){
    			System.out.println(line);
    		}
    		br.close();
        }
    }

    Klappt bei mir wunderbar.
    Wird überhaupt ne Exceptino geworfen?
  7. Jep,
    Exceptions können auftreten, z.B. die "FileNotFoundException" beim FileReader und die "IOException", die durch den BufferedReader geworfen werden kann, muss auch behandelt werden.

    Oder was meintest du jetzt? "throws IOException" hast du ja schlielich auch ergänzt :)

    Gruß
    b4l

    Beitrag zuletzt geändert: 18.1.2009 11:26:19 von b4l
  8. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    b4l schrieb:
    Jep,
    Exceptions können auftreten, z.B. die "FileNotFoundException" beim FileReader und die "IOException", die durch den BufferedReader geworfen werden kann, muss auch behandelt werden.

    Oder was meintest du jetzt? "throws IOException" hast du ja schlielich auch ergänzt :)

    Gruß
    b4l

    Ehm...vllt. dass bei ihm eine geworfen wird?!
    Sollte ja eigentlich, wenns "nicht klappt".
  9. Juten Abend zusammen
    erstma zum system: mac mini intel 2coreduo bla blabla...bin grad am Java lernen und hab mir Eclipse runtergeladen...hab gelesen das ich auch ein umwandler/übersetzer ...weiß jetz nicht wie der heißt, benötige um auszuführen...das Progr für Mac is auf englisch, nicht das ich das nicht beherrsche aber dieses fachzeug hab ich nicht so ganz raus
    Ist hier ein mac user der sich etwas damit auskennt???
    donke donke
  10. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    octa schrieb: Juten Abend zusammen
    erstma zum system: mac mini intel 2coreduo bla blabla...bin grad am Java lernen und hab mir Eclipse runtergeladen...hab gelesen das ich auch ein umwandler/übersetzer ...weiß jetz nicht wie der heißt, benötige um auszuführen...das Progr für Mac is auf englisch, nicht das ich das nicht beherrsche aber dieses fachzeug hab ich nicht so ganz raus
    Ist hier ein mac user der sich etwas damit auskennt???
    donke donke

    Meinst nen Kompiler?
    Alles, was du zum Entwickeln(vorerst) brauchst, sollte eigentlich bei dem JDK dabei sein, das du dir ja einfach bei sun runterladen kannst.
  11. coole sache...dann muss ich mich mal intensiver damit befassen
    danke schonma :prost:
  12. ouch ...

    wenn ich eure lösungsvorschläge hier so lesen kommt mir des grauen so n bisschen ...

    ich würde das ganze eher mit RandomAccessFile lösen ... und dann die READ vom DataInputStream des FileChannel-IO eher mit bytes lösen ...

    und ein großer anfänglicher fehler von toolz :

    so wie dein code aussieht wird nur die letzte zeile zurück gegebn ...
    du brauchst für dieses code-beispiel noch n zweiten string *am besten eh alles mit byte-arrays machen* an den du jede runde der while die grade gelesenen daten anhängst ...


    greedz

    de SPiKEe *x*D
  13. Hallo,

    Wenn bei ihm eine FileNotFoundException geworfen werden sollte, kann er das
    überprüfen, indem er
    System.out.println("Die Datei existiert? "+new File("deindateiname.txt").exists());

    Sollte dort false stehen, ist es die filenotfound exception. andernfalls kann es nur noch die
    IO-Exception sein - und die kann viele gründe haben: du hast nebenbei ein anderes programm
    zu laufen (vllt. sogar dein eigenes) und die datei wurde nicht korrekt geschlossen.
    vllt. stimmen aber die rechte bei dir auch nicht.

    Hoffe, das hat geholfen.

    Gruß Tillorgias
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!