Java - Programmexterne Datei öffnen
lima-city → Forum → Programmiersprachen → Java
auftreten
beispiel
code
datei
externe dateien
grad
import
inhalt
lernen
null
ordner
pfad
private string
problem
programm
string
system
test
zeile
zweiten string
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
also AFAIK sollte das eigentlich so funktionieren.
hast du es überhaupt schon probiert? -
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;
} -
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 -
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? -
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 -
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". -
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 -
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. -
coole sache...dann muss ich mich mal intensiver damit befassen
danke schonma -
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 -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage