Properties mit String auslesen

KeVoZ_

Aktives Mitglied
Hallöchen liebes Forum,
vorab: ich bin neu hier und hoffe mal, dass ich meinen Beitrag hier in das richtige Forum gepostet habe ;)

Also ich habe einen Code geschrieben, der aber je nach Wunsch von anderen per *.properties verändert werden kann/darf.
Dazu habe ich einen String erstellt:

PHP:
String test = getProperty("name");


Dann habe ich eine Methode getProperty für den String erstellt:

Java:
public String getProperty(String string) {
 String sys = System.getProperty("user.home");
 String desktop = sys + "\\Desktop\\JavaGUI";
 File f = new File(desktop + "/test.properties");
 if (!f.exists()) {
  Properties properties = new Properties();
  properties.setProperty("name", "thisname");
  properties.setProperty("passwort", "1234567890");
  FileOutputStream fos = null;
  try {
   fos = new FileOutputStream(desktop + "/test.properties");
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }
  try {
   properties.store(fos, null);
  } catch (IOException e) {
   e.printStackTrace();
  }
  try {
   fos.flush();
  } catch (IOException e) {
   e.printStackTrace();
  }
 } else if (f.exists()) {
  Properties properties = new Properties();
  try {
   properties.load(new FileInputStream(desktop + "/test.properties"));
  } catch (IOException e) {
   properties.getProperty("name");
   e.printStackTrace();
  }
 }
 return string;
}


Bei mir gibt dann aber der String 'test' nicht "thisname" sondern "name" aus. :/
Ich habe leider keine Ahnung was ich falsch gemacht habe...

Trotz Stunden langen Googlen finde ich gerade zu meinem Anliegen nichts was hierzu passt.

Vielleicht merkt ihr es ja, dass ich noch ein Anfänger bin :) hoffe ihr nehmt es mir nicht übel ;)

Ich hoffe mal, dass ihr versteht was ich will und das ihr mir helfen könnt.



Schon mal ein Danke im Voraus

MfG Kevin
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Du gibst auch wieder den Eingabeparameter wieder zurück. Du solltest eher: return properties.getProperty("name"); zum Schluß stehen haben.

Geschweige davon, dass man den Code ein wenig effizienter schreiben könnte wie z.B.:
Java:
public String getProperty(String string) {
  Path propertyPath = Paths.get(System.getProperty("user.home"), "Desktop", "test.properties");
  
  Properties properties = new Properties();
  if (Files.notExists(propertyPath)) {
    properties.setProperty("name", "thisname");
    properties.setProperty("passwort", "1234567890");
    try (FileOutputStream fos = new FileOutputStream(propertyPath.toFile())) {
      properties.store(fos, null);
    } catch (IOException e) {
      e.printStackTrace();
    }
  } else {
    try (FileInputStream fis = new FileInputStream(propertyPath.toFile())) {
      properties.load(fis);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  return properties.getProperty(string);
}
 
Zuletzt bearbeitet:

KeVoZ_

Aktives Mitglied
Ich habe es mal genauso wie du gemacht. Das Resultat ist das selbe wie bei meiner Variante. Es wird wieder "name" ausgegeben :/

MfG Kevin
 

KeVoZ_

Aktives Mitglied
Okay mein Code sieht wie folgt aus:

Java:
//Hier oben sind dann die Buttons, die Texte und das GUI aufgelistet und konfiguriert
}
        public class EventHandler implements ActionListener{    
    
            @Override
            public void actionPerformed(ActionEvent event) {
                if(event.getSource()==StoppButton)
                    try {
                        Runtime.getRuntime().exec("cmd /c blabla");
                        Thread.sleep(200);
                        JOptionPane.showMessageDialog(null, "bla", "test", DISPOSE_ON_CLOSE);
                    } catch (IOException | InterruptedException e) {
                        e.printStackTrace();
                    }
            
             
                if(event.getSource()==NeustartButton)
                    try {
                        Runtime.getRuntime().exec("cmd /c blabla");
                        Thread.sleep(3000);
                        Runtime.getRuntime().exec("cmd /c blabla");
                        Runtime.getRuntime().exec("cmd /c blabla");
                        JOptionPane.showMessageDialog(null, "abc", "test", HIDE_ON_CLOSE);
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
        
                String test = getProperty("name");
                if(event.getSource()==StartButton)
                    try {
                        Runtime.getRuntime().exec("blabla"+ test + "blabla");
                        Runtime.getRuntime().exec("cmd /c huhu");
                        Thread.sleep(750);
                        JOptionPane.showMessageDialog(null, "abc", "test", HIDE_ON_CLOSE);
                
                    } catch (IOException | InterruptedException e) {                
                        e.printStackTrace();
                    }
                if(event.getSource()==close)
                    dispose();
        
        
            }

            public String getProperty(String string) {
        
        
                Path propertyPath = Paths.get(System.getProperty("user.home"), "Desktop","JavaGUI" ,"/test.properties");
           
                   Properties properties = new Properties();
                   if (Files.notExists(propertyPath)) {
                     properties.setProperty("name", "thisname");
                     properties.setProperty("passwort", "1234567890");
                     try (FileOutputStream fos = new FileOutputStream(propertyPath.toFile())) {
                       properties.store(fos, null);
                     } catch (IOException e) {
                       e.printStackTrace();
                     }
                   } else {
                     try (FileInputStream fis = new FileInputStream(propertyPath.toFile())) {
                       properties.load(fis);
                     } catch (IOException e) {
                       e.printStackTrace();
                    }
            
                }
                return properties.getProperty(string);
            }

        }
}

Ist vielleicht erkennbar - ich möchte, dass man per properties die Eingabe quasi manipulieren kann.


MfG
Kevin
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Rein von der Logik her kann nur in der "test.properties" "name" als value vorhanden sein. Der Code funktioniert so. Hast du schon mal den Debugger angeworfen?
 

KeVoZ_

Aktives Mitglied
Vielleicht ist es ja ganz interessant, was in der test.properties Datei drinn steht:
Code:
#Sun May 15 03:27:23 CEST 2016
name=wort1 wort2
passwort=1234567890

-.- Es darf nur ein Wort sein.... darauf hatte ich nicht geachtet.

Ich habe die Datei nicht gelöscht als ich den Namen im Code geändert hatte... Ich hab nicht richtig hingeschaut....

@JStein52 -- Du hattest Recht.

Es funktioniert jetzt ;) Trotzdem Danke an alle und vor allem Danke für die schnellen Antworten!
 

JStein52

Top Contributor
Wenn du mit Debugger noch nicht so fit bist dann baue doch in deine getProperty mal ein paar println's ein. Irgendwas stimmt mit deinen Daten nicht. Der code sieht richtig aus.

Edit: ok wir haben uns überkreuzt.
 

KeVoZ_

Aktives Mitglied
Also ich würde rein für Erfahrung noch die println mit rein bauen. Hier wird ja nicht die cmd benutzt, würde ja nur in Eclipse ausgeworfen werden ;)

Funktioniert ja jetzt so weit :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Properties Key als String mit =? Allgemeine Java-Themen 3
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
S Test mit Werten aus der .properties Allgemeine Java-Themen 4
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
ralfb1105 Classpath Directory fuer Properties File Allgemeine Java-Themen 2
K Properties serializable machen Allgemeine Java-Themen 6
thet1983 Input/Output read properties file from classpath Allgemeine Java-Themen 3
Baldur BeanInfo für Properties-UI? Allgemeine Java-Themen 1
J Properties file ändern Allgemeine Java-Themen 12
B Objekte anhand von Properties file Allgemeine Java-Themen 41
W Input/Output Kann .properties Datei in kompilierter .jar nicht ändern Allgemeine Java-Themen 2
Thallius Speicherverhalten von Properties und mehreren Threads Allgemeine Java-Themen 5
T [log4j] Wie nutzt man log4j.properties? Allgemeine Java-Themen 7
I Best Practice Properties auslesen und splitten (RegExp?) Allgemeine Java-Themen 0
OnDemand Lesen aus Properties Allgemeine Java-Themen 7
D JAVA - Properties Datei mit Userdaten Allgemeine Java-Themen 7
M StripesResources.properties Allgemeine Java-Themen 2
GUI-Programmer Mehr als Properties Allgemeine Java-Themen 6
C Dynamisches und sortiertes Auslesen von Properties Allgemeine Java-Themen 2
Mr. Pink Erste Schritte Checkstyle.properties Allgemeine Java-Themen 3
B Properties File Liste Allgemeine Java-Themen 3
X Probleme mit meinem Properties Allgemeine Java-Themen 9
T Wahrscheinlich Problem mit log4j.properties Allgemeine Java-Themen 19
D Properties Datei, Eingabequelle Allgemeine Java-Themen 6
S Stilfrage bezüglich Beans mit Collection-Properties Allgemeine Java-Themen 2
C JAR, Pfad und Properties Allgemeine Java-Themen 17
R Properties Datei aus Applikationsverzeichnis lesen Allgemeine Java-Themen 5
T Properties Datei nicht jedes mal neu schreiben? Allgemeine Java-Themen 2
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
M Probleme mit UTF-8 und properties Allgemeine Java-Themen 6
C log4j.properties wird nicht verwendet?? Allgemeine Java-Themen 3
T Properties Datei nicht löschbar Allgemeine Java-Themen 8
S Properties binden Allgemeine Java-Themen 2
nrg Knotenpunkte in Properties Allgemeine Java-Themen 9
U Properties in Jar Files Allgemeine Java-Themen 3
S Properties-Dateien anwenden Allgemeine Java-Themen 8
G Alternative zu .properties Dateien Allgemeine Java-Themen 20
nabla Gutes einlesen von Konfigurationsdateien (Properties?) Allgemeine Java-Themen 11
E Properties +SerialPort Allgemeine Java-Themen 9
H Java Properties Allgemeine Java-Themen 5
A kann nicht auf properties außerhalb jar zugreifen Allgemeine Java-Themen 3
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
Y Properties verwalten! Allgemeine Java-Themen 3
G externe Properties datei aus Jar File heraus lesen Allgemeine Java-Themen 12
M Databinding von Object zu properties-Datei Allgemeine Java-Themen 10
F Properties verschlüsselt speichern Allgemeine Java-Themen 5
W Properties-Klasse: mehrere Parameter-Belegungen übergeben? Allgemeine Java-Themen 2
K settings.properties in den src-ordner schreiben Allgemeine Java-Themen 2
J Wo werden die System properties gespeichert Allgemeine Java-Themen 12
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
D Ordner mit *.properties in classpath ? Allgemeine Java-Themen 5
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
A Hardware Properties auslesen Allgemeine Java-Themen 10
P Properties liest nicht alles aus Datei aus Allgemeine Java-Themen 17
J Properties sortieren Allgemeine Java-Themen 6
I Properties.contains("Hell*orld"); Allgemeine Java-Themen 14
G Probleme beim Sichern von Properties Allgemeine Java-Themen 2
N Java Properties Allgemeine Java-Themen 14
L "globale" properties Datei Allgemeine Java-Themen 4
G Beans und transiente Properties Allgemeine Java-Themen 4
MQue properties- Datei Allgemeine Java-Themen 2
M Pattern aus Properties Allgemeine Java-Themen 3
R Problem bei schreiben von properties Allgemeine Java-Themen 6
R Properties Datei ändern Allgemeine Java-Themen 4
P log4j: Übersicht der Properties Allgemeine Java-Themen 5
R Properties dateien in Jar beschreiben Allgemeine Java-Themen 2
L properties auslesen funktioniert nicht(java.util.Properties) Allgemeine Java-Themen 3
G properties datei aktualisieren Allgemeine Java-Themen 4
J Properties editieren. Allgemeine Java-Themen 10
V log4j.properties wird in der jar Datei nicht gefunden? Allgemeine Java-Themen 2
V INI Files, Properties etc. Allgemeine Java-Themen 7
K Cast von Properties und Hashmap Allgemeine Java-Themen 9
A Mehrzeiligen Eintrag in Ressourcebundle (.properties-Datei) Allgemeine Java-Themen 8
B Wohin mit log4j.properties Allgemeine Java-Themen 2
B MannoMann Properties Allgemeine Java-Themen 12
G Properties Datei verschlüsseln. WIE? Allgemeine Java-Themen 6
G Einzelne Keys aus Properties-Datei auslesen Allgemeine Java-Themen 4
S Zugriff auf Properties-Datei Allgemeine Java-Themen 10
J ResourceBundle / properties-datei während der Laufzeit verän Allgemeine Java-Themen 6
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
M String Allgemeine Java-Themen 10
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
O String in Long Hexerdezimal umwandel Allgemeine Java-Themen 14
N String vergleichen. Allgemeine Java-Themen 27
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
SaschaMeyer Arbeitet String.split falsch? Allgemeine Java-Themen 4
M Switches ohne String Allgemeine Java-Themen 18
AmsananKING String Iteration Allgemeine Java-Themen 5
S Shuffle String aus if-clause Allgemeine Java-Themen 11
Besset Variablen Ist String = "" + int inordnung? Allgemeine Java-Themen 6
M Map <Long, String> zu Map<String, Long> Allgemeine Java-Themen 9
S String Encoding Verständnisproblem Allgemeine Java-Themen 22
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
SaftigMelo Bug Fixen von String-spliten Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben