Announcement

Collapse
No announcement yet.

Config Datei Schreiben/auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Config Datei Schreiben/auslesen

    Gibt es eine Methode/Klasse mit der man eine Config Datei schreiben und aulesen lassen kann? Ich stelle mir das folgt vor:

    config.cfg
    ---------

    xPos=30
    yPos=40

    Diese Werte in dieser Datei würde ich gerne einlesen.

    obj.file("config.cfg")
    String x = obj.getValue("xPos")
    String y = obj.getValue("yPos")

    Gibt es schon so ein Objekt? Wenn nicht muss ich es selbst schreiben. Aber warum das Rad neu erfinden? ;o).

  • #2
    So ich habe das ganze gelöst. Ist recht einfach. Hier das Ergebnis:

    Meine test.cfg:

    #Konfigurations File
    #Fri May 23 14:39:35 CEST 2003
    Vorname=Mynard James Keenan

    Nun wird die Klasse das File öffnen den Namen einlesen und einen neuen Namen speichern.<br> Es ist auch egal an welcher stelle das Schlüsselwort Vorname steht.

    Hier die config.java

    <PRE>
    import java.io.*;
    import java.util.*;

    public class config {

    /**
    * Constructor for config.
    */
    public config() {

    String alterVorname = null;
    String neuerVorname = null;

    String home = System.getProperty("user.dir");

    File file = new File(home + "\\" + "images\\test.cfg");
    Properties fileProp = new Properties();

    try {
    FileInputStream stream = new FileInputStream(file);
    FileOutputStream stream2 = new FileOutputStream(file);

    fileProp.load(stream);
    alterVorname = fileProp.getProperty("Vorname");

    fileProp.setProperty("Vorname","Danny");
    neuerVorname = fileProp.getProperty("Name");

    fileProp.save(stream2,"Konfigurations File");

    } catch (FileNotFoundException e) {
    System.out.println("File Not Found");
    } catch (IOException e2) {
    System.out.println("Konnte Stream nicht laden");
    }

    System.out.println(alterVorname);
    System.out.println(neuerVorname);


    }

    public static void main(String[] args) {
    new config();
    }
    }

    </PRE>

    Ergebnis:

    Mynard James Keenan ~ Tool<br>
    Danny

    Gruß NoQuarte

    Comment


    • #3
      Hallo

      bin auch noch eher Java Anfänger...
      u nd sowas hab nich gesucht... ohne sowas kann ich mit meinen Programmen so wenig anfangen bisher ;-)

      Nur leider klappt das (bei mir) nicht so recht...
      für "alterVorname" wird bei mir bei der Wert bei dieser zuweisung:
      alterVorname = fileProp.getProperty("Vorname");
      immer gleich NULL gesetzt (hab ihn vorher mal auf einen anderen Wert gesetzt um zu testen wann das passiert).

      Woran liegt das?

      Gruss
      Jonnsn

      Comment


      • #4
        Schon mal die java.util.Properties Klasse versucht? Die wird bei Java standardmässig mitgeliefert und bietet ähnliche Funktionalität. Zwar werden die Daten als XML-Daten gespeichert, aber letzten Endes sollte das egal sein.

        Code:
              // Initialisieren und einladen von Alt-Daten
              Properties p = new Properties();
              try {
                 p.loadFromXML(new FileInputStream("config.xml"));
              } catch (FileNotFoundException e) {
                 e.printStackTrace();
              } catch (IOException e) {
                 e.printStackTrace();
              }
        		
              // setzen von beliebigen STRING-Werten
              p.setProperty("vorname", "Hans-Dieter Mustermann");
        	
              // Speichern der Daten in die XML-Datei
              try {
                 p.storeToXML(new FileOutputStream("config.xml"), null);
              } catch (FileNotFoundException e) {
                 e.printStackTrace();
              } catch (IOException e) {
                 e.printStackTrace();
              }

        Comment

        Working...
        X