Tomate_Salat: Pfad aus Dateilesen -> wie diesen Pfad verwenden!

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

  1. 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

    1. 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

      1. 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

        1. 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