Pfad aus Dateilesen -> wie diesen Pfad verwenden!
Tomate_Salat
- java
Hi,
Ich bin gerade dabei ein kleines Tool zu schreiben. Für das Tool gibt der Benutzer einen Pfad zu einem Ordner an, welcher Dateien enthält, dass das Tool administrieren soll. Dazu verwende ich einen JTree. Den Pfad zum Ordner wird in der config.txt gespeichert. Wenn ich jetzt mit FileReader die Datei auslese, erkennt File() diesen Pfad nicht o.O. Gebe ich den, in config.txt, enthaltenen Pfad manuell ein (also in den Programmcode in File()) Funktioniert es und der JTree läd die Ordner die in dem Pfad enthalten sind.
Also: wie kann ich den Pfad aus der config nehmen?
Hier der Code, wie ich die config.txt auslese [als Testeintrag steht in der Config: C:\ drin]
try {
String vz = "";
Reader fread = new FileReader("config.txt");
for(int c=0;(c = fread.read()) != -1;) {
vz += (char)c;
}
File dir = new File(vz);
getTree(dir,root);
} catch(Exception e) {}
MFG
Tomate_Salat
Hallo,
Also: wie kann ich den Pfad aus der config nehmen?
Mit Hilfe eines Properties-Objektes
http://www.exampledepot.com/egs/java.util/pkg.html#Property Files
Hier der Code, wie ich die config.txt auslese [als Testeintrag steht in der Config: C:\ drin]
*g* Da steht C:\r\n drin und den Zeilenwechsel liest Du mit aus.
try {
String vz = "";
Reader fread = new FileReader("config.txt");
for(int c=0;(c = fread.read()) != -1;) {
vz += (char)c;
}
File dir = new File(vz);
getTree(dir,root);
} catch(Exception e) {}
>
Hm, wenn schon TXT-Datei lesen, dann so: <http://www.exampledepot.com/egs/java.io/ReadLinesFromFile.html>.
Aber besser ist es wie gesagt via Properties. Hier ein ganz einfaches Beispiel völlig ohne Fehlerabfragen nur zum Zeigen des Prinzips:
~~~java
import java.io.*;
import java.util.*;
class ReadAndUseProperties {
public static void main(String[] args){
try {
Properties properties = new Properties();
properties.load(new FileInputStream("config.txt"));
String vz = properties.getProperty("vz");
File dir = new File(vz);
System.out.println(dir);
System.out.println(dir.isDirectory());
} catch(Exception e) {
e.printStackTrace();
}
}
}
In der config.txt steht z.B.:
blah = blubb
vz = C:/
test = 1234
viele Grüße
Axel
Hi,
danke für die antwort, habe es allerdings mitlerweile erkannt, dass ich mehr als gewollt auslese. Habe das Problem also schon gelöst :)(mit BufferedReader). Zwar steht in der Config derzeit wirklich nur der Pfad, aber sollte ich da doch mehr drin speichern, werde ich wohl dein Vorschlag mit den Properties umsetzen (welche mir vorher nicht bekannt waren).
Also auf jeden fall hab ich was dazu gelernt, ty ;)
MFG
Tomate_Salat
Hallo,
Zwar steht in der Config derzeit wirklich nur der Pfad, aber sollte ich da doch mehr drin speichern, werde ich wohl dein Vorschlag mit den Properties umsetzen (welche mir vorher nicht bekannt waren).
So soll das sein.
Abstrahiere weiter und beschäftige Dich mit java.util.ResourceBundle, um möglichst unabhängig von so plattformspezifischen Dingen wie Dateipfadermittlung und direktem Arbeiten mit Dateien zu werden.
viele Grüße
Axel
Moin,
So soll das sein.
Abstrahiere weiter und beschäftige Dich mit java.util.ResourceBundle, um möglichst unabhängig von so plattformspezifischen Dingen wie Dateipfadermittlung und direktem Arbeiten mit Dateien zu werden.
Ja das soll so sein, ist auch nicht schlimm, da der Pfad vom Benutzer eingegeben wird. Beim ersten Start des Programms kommt direkt eine Abfrage, die den Benutzer auffordert den Pfad Verzeichnis, welches das Tool administrieren wird, anzugeben
MFG
Tomate_Salat