Textdatei im programm mit relativen pfad laden(lokal also)
-
hi
mein programm ist wie folgt aufgebaut:
Programm
bin
packageProject
klasse.class
...
src
packageProject
klasse.java
...in einer bestimmten klasse möchte ich eine Textdatei laden. bisher habe ich immer eclipse verwendet. hier reichte es aus wenn ich die datei ins verzeichniss Programm kopiere und im code "textdatei.txt" aufrufe. sobald ich das prog per konsole ausführe findet er die datei nicht mehr.
in der konsole muß ich in das verzeichnis bin wechseln und rufe von dort das prog auf. eigentlich soll das prog mal in einer jar laufen, da blick ich aber überhauptnoch nix wie da die pfade liegen. dort findet er die datei auch nicht.
wie bekomme ich das problem gelöst ? dankepain
-
1. Zeig Code.
2. Wie "rufst du die Datei auf"?
3. Die Lösung ist in jedem Fall die Methode getResourceAsStream aus java.lang.ClassLoader.
-
ähm steht eigentlich alles da. als pfad geb ich "textdatei" an.kann dir auch den code zeigen:
InputStream in = new FileInputStream("Help.txt");
als verkürzte variante. aber ichwüßte nicht wie dir das weiterhelfen kann.
achja, nur so am rande. du bist doch auch eclipser,oder ? habe in mein prog eine jar namens swt.jar eingebunden. funzt in eclipse super. sobald ich aber von der konsole ausführe is pumpe.any idea ? thx.pain
ps:kann das daran liegen das ich von der konsole nochmal neu kompilieren muss? habe leider kein plan wie ich das bei meiner projectstruktur machen soll.
-
1. Wenn sich die txt-Datei im gleichen Verzeichnis, wie die class-Datei befindet, dann probier mal folgendes in deiner Klasse aus:
InputStream in = Klasse.class.getClassLoader().getResourceAsStream("Help.txt");
2. Ich nutze zwar Eclipse, aber nicht das SWT. Kann dir da also nicht helfen. Sorry!
-
danke für den tip. etwas hat sich geändert. ein wenig text steht jetz drinne, aber der scrollbalken is jetz von rechts nach links und das prog verreckt, was es nich alles gibt. vielleicht mal der komplette code fürs einlesen, vielleicht siehste ja ein fehler:
[java]
private void ReadWrite(){try{
InputStream in = DialogHelpContent.class.getClassLoader().getResourceAsStream("Help.txt");
//InputStream in = new FileInputStream("Help.txt");
int availableLength = in.available();
byte[] totalBytes = new byte[availableLength];
int bytedata = in.read(totalBytes);
String text = new String(totalBytes);
TextAreaDialogHelp.setText(text);
TextAreaDialogHelp.setCaretPosition(0);}catch (IOException e){System.out.println("Error");}
}[/code]gut eine seite wird richtig dargestellt.dann: Initialize : Auswähl[][][]
(das sollen vierecke sein, mehr kommt dann nicht mehr)schonmal danke.
pain
[ Dieser Beitrag wurde am 31.01.2003 um 17:25 Uhr von pain_md editiert. ]
-
okay, alles klar.
-
?????????
-
Was ist los?
-
Kann ich auch irgendwie die Datei in ein Array of String laden. Das ich für eien zeile einen String in meinem Array habe