Per for schleife string propertys in einer datei speichern

Status
Nicht offen für weitere Antworten.
R

rAtze

Gast
Code:
try
        {  
           Properties props = new Properties();
           File fileOfFinishedSchools = new File("breits_eingelesene_schulen.txt");
           props.load(new FileInputStream(fileOfFinishedSchools));
           int numberOfFinishedSchools = finishedSchoolsCB.getItemCount(); 
           
           for(int i = 0 ; i < numberOfFinishedSchools ; i++ )
           {
        	   String finishedSchools = finishedSchoolsCB.getItemAt(i).toString();
        	   System.out.println(finishedSchools);      	   
        	   props.setProperty("eingelesene_Schule", finishedSchools);
        	   props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene_Schule"); 
           }        
        }
    	
        catch (Exception e)
        {
             e.printStackTrace();             
        }

Wenn ich die 4 String einträge die sich in der JComboBox finishedSchoolsCB befinden auslese und mit
System.out.println(finishedSchools); in der for schleife ausgebe bekomme ich richtigerweise dies:

EKS
JKS
OHG
ASR eingelesen am 03/08/2007

wen ich dann in den nächsten 2 Zeilen:

Code:
props.setProperty("eingelesene_Schule", finishedSchools);
props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene_Schule");

den String finishedSchools einlese und in die Datei schreibe und danach die Datei öffne finde ich nur diesen Eintrag:

eingelesene_Schule=ASR eingelesen am 03/08/2007

warum nicht alle 4 Einträge? Oben werden mit System.out.println alles 4 ausgegeben ABER es werden nicht alle 4 der Datei hinzugefügt?? DAS ist mal VOLL unlogisch, sieht jemand den Fehler?
 

NTB

Bekanntes Mitglied
Wie Du in der API lesen kannst, implementiert die Klasse Properties das Interface Map. Und dort steht geschrieben:

An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.
Das ist VOLL logisch.
Alles klaro? :)
 
R

rAtze

Gast
NTB hat gesagt.:
Wie Du in der API lesen kannst, implementiert die Klasse Properties das Interface Map. Und dort steht geschrieben:

An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.
Das ist VOLL logisch.
Alles klaro? :)

witzig dass ich das übersehen habe :lol:

verreck nochmal... warum geht das hier nicht?

Code:
for(int i = 0 ; i < numberOfFinishedSchools ; i++ )
           {  
        	   String finishedSchools = finishedSchoolsCB.getItemAt(i).toString();        	     
        	  
        	   props.setProperty("eingelesene_Schule"+i, finishedSchools +i);
        	   props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene_Schule"+i); 
           }

durch das angehängt "i" ist der key und der value jedesmal anders warum geht das nicht?
 
S

SlaterB

Gast
du hast gar kein System.out.println mehr drin, bist du sicher, dass es 4 Elemente sind?
wenn nur eins erscheint, welches? (welches i?)

bei mir gehts:
Code:
public class Test2
{
    public static void main(String[] args)
        throws Exception
    {
        String[] st = new String[]
            {"a", "b", "c", "d"};
        try
        {
            Properties props = new Properties();
            File fileOfFinishedSchools = new File("breits_eingelesene_schulen.txt");
            if (!fileOfFinishedSchools.exists())
            {
                fileOfFinishedSchools.createNewFile();
            }
            props.load(new FileInputStream(fileOfFinishedSchools));
            int numberOfFinishedSchools = st.length;

            for (int i = 0; i < numberOfFinishedSchools; i++)
            {
                String finishedSchools = st[i];
                System.out.println(finishedSchools);
                props.setProperty("eingelesene_Schule" + i, finishedSchools + i);
                props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene_Schule" + i);
            }
        }

        catch (Exception e)
        {
            e.printStackTrace();
        }

    }
}
 
R

rAtze

Gast
du hast gar kein System.out.println mehr drin, bist du sicher, dass es 4 Elemente sind?
wenn nur eins erscheint, welches? (welches i?)

diese Zeile steht bei mir in der .txt datei. Diese Zeile befindet sich auch mit 3 anderen an letzter stelle in der Jcombobox:


eingelesene_Schule=ASR eingelesen am 03/08/2007

stop alles zurück LOL ich habe die komplette Methode kopiert und die ganze Zeit in der falschen Methode geändert...
:roll: :shock: :lol: Danke euch! :autsch:
 
S

SlaterB

Gast
wenn es langsam läuft, dann könntest du
props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene_Schule" + i);
aus der Schleife rausnehmen,

reicht, wenn du am Ende EINMAL die Datei erzeugst,
nicht für jeden Property ständig die vorhandene Datei überschreiben ;)
 
R

rAtze

Gast
SlaterB hat gesagt.:
wenn es langsam läuft, dann könntest du
props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene_Schule" + i);
aus der Schleife rausnehmen,

reicht, wenn du am Ende EINMAL die Datei erzeugst,
nicht für jeden Property ständig die vorhandene Datei überschreiben ;)

yo ich machs erstmal grob und optimiere hinterher ;-) danke dir aber, eins noch...

so wird der key in die .txt geschrieben mit den "\" -zeichen im key ist an dieser Stelle ein Leerzeichen. Wie bekomme ich solch eine Ausgabe wie es eben im key ist?

eingelesene_Schule Nummer 0 =EKS

irgendwie muss man das regexxen?

eingelesene_Schule\ Nummer\ 0=EKS
 
S

SlaterB

Gast
verstehe nicht genau was du meinst, mit
Code:
String[] st = new String[]
            {"a", "b\"nummer\"", "c", "d"};
und meiner Programmversion erhalte ich in der Datei

eingelesene_Schule1=b"nummer"1


was willst du nun, was hast du für einen String und was steht falsch in der Datei?
in jedem Falle wüde ich mich hüten, im Key Leerzeichen oder Anführungsstriche einzubauen..
 
R

rAtze

Gast
SlaterB hat gesagt.:
verstehe nicht genau was du meinst, mit
Code:
String[] st = new String[]
            {"a", "b\"nummer\"", "c", "d"};
und meiner Programmversion erhalte ich in der Datei

eingelesene_Schule1=b"nummer"1


was willst du nun, was hast du für einen String und was steht falsch in der Datei?
in jedem Falle wüde ich mich hüten, im Key Leerzeichen oder Anführungsstriche einzubauen..
richtig daher habe ich es so gemacht, Ausgabe:

ingelesene.Schule.Nummer.0
#Fri Aug 03 16:57:07 CEST 2007
eingelesene.Schule.Nummer.0=ASR erledigt am 03.08.2007
 
R

rAtze

Gast
SlaterB hat gesagt.:
wenn es langsam läuft, dann könntest du
props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene_Schule" + i);
aus der Schleife rausnehmen,

reicht, wenn du am Ende EINMAL die Datei erzeugst,
nicht für jeden Property ständig die vorhandene Datei überschreiben ;)

ups überlesen.... ja wenn ich die Datei nach der for schleife erzeuge, wie sieht dann das props.store( , ); aus ? das "i" muss ja in die schleife sonst habe ich das alte problem wieder an der Backe.
 
G

Guest

Gast
Code:
try
        {  
           Properties props = new Properties();
           File fileOfFinishedSchools = new File("breits_eingelesene_schulen.txt");
           props.load(new FileInputStream(fileOfFinishedSchools));           
           int numberOfFinishedSchools = finishedSchoolsCB.getItemCount(); 
           
           for(int i = 0 ; i < numberOfFinishedSchools ; i++ )
           {  
        	   String finishedSchools = finishedSchoolsCB.getItemAt(i).toString();
        	   props.setProperty("eingelesene.Schule.Nummer."+i, finishedSchools);
        	   props.store(new FileOutputStream(fileOfFinishedSchools), "eingelesene.Schule.Nummer."+i); 
        	   System.out.println(finishedSchools);
           }    
           props.setProperty("Anzahl.Schulen",String.valueOf(numberOfFinishedSchools));
           props.store(new FileOutputStream(fileOfFinishedSchools),"Anzahl.Schulen");
           System.out.println(numberOfFinishedSchools);
        }

Ausgabe mit obigem System.out.println... :

ASR
EDS
MPG
ASR erledigt am 03.08.2007
4


Ausgabe in der Datei:

#Anzahl.Schulen
#Fri Aug 03 20:05:43 CEST 2007
eingelesene.Schule.Nummer.2=MPG
eingelesene.Schule.Nummer.1=EDS
eingelesene.Schule.Nummer.0=ASR
Anzahl.Schulen=4
eingelesene.Schule.Nummer.3=ASR erledigt am 03.08.2007

Warum um himmels willen ist die "4" hier nicht am Ende ?
 
S

SlaterB

Gast
> ja wenn ich die Datei nach der for schleife erzeuge, wie sieht dann das props.store( , ); aus ? das "i" muss ja in die schleife sonst habe ich das alte problem wieder an der Backe.

das Datei schreiben hat nichts mit den Namen der Properties zu tun,
was du bei store übergibst, ist nur ein unabhängiger Kommentar

siehe dein Ausgabe: da ist #Anzahl.Schulen der Kommentar ganz oben in der Datei

> Warum um himmels willen ist die "4" hier nicht am Ende ?

warum sind die i nicht sortiert?
ich schätze da liegt standardmäßig keine Reichenfolge for
(und nein, ich zumindest kann dir nicht sagen wie du eine Reihenfolge bekommst)
 

NTB

Bekanntes Mitglied
Das ist eine HashMap hinter, also wird sie wohl nach den Hashkeys sortiert.
Die Properties Datei ist ja auch nicht dazu gedacht, irgendwas sortiert in eine Datei zu schreiben.
 
R

rAtze

Gast
SlaterB hat gesagt.:
> ja wenn ich die Datei nach der for schleife erzeuge, wie sieht dann das props.store( , ); aus ? das "i" muss ja in die schleife sonst habe ich das alte problem wieder an der Backe.

das Datei schreiben hat nichts mit den Namen der Properties zu tun,
was du bei store übergibst, ist nur ein unabhängiger Kommentar

siehe dein Ausgabe: da ist #Anzahl.Schulen der Kommentar ganz oben in der Datei

> Warum um himmels willen ist die "4" hier nicht am Ende ?

warum sind die i nicht sortiert?
ich schätze da liegt standardmäßig keine Reichenfolge for
(und nein, ich zumindest kann dir nicht sagen wie du eine Reihenfolge bekommst)

völliger quark mit den properties... lese die combobox einfach zeilenweise aus und zeilenweise ein in eine .txt datei ist am einfachstem wenn das ganze sprich ASR,Datum getrennt ist. Bringe morgen ein Beispiel...
 
R

rAtze

Gast
Keywords: txt text string jcombobox datei abspeichern einlesen auslesen


In Datei schreiben:

Code:
try
       {
    	   String volume = System.getProperty("user.dir");
    	   BufferedWriter file = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(volume + "/" + "breits_eingelesene_schulen.txt")));
    	   String line;
    	   String finishedSchools;
    	   int numberOfFinishedSchools = finishedSchoolsCB.getItemCount();
    	   
    	   for(int i = 0 ; i < numberOfFinishedSchools ; i++)
      	   { 
    		   finishedSchools = finishedSchoolsCB.getItemAt(i).toString();         		 
      		              line = finishedSchools + "\r\n";
      		   file.write(line);
      	   }        	   
    	   file.close();
    	   
       }
       catch (Exception e)
       {
          e.printStackTrace();
       }

Ausgabe:

ASR erledigt am 03.08.2007
EDS erledigt am 03.08.2007
MPG erledigt am 03.08.2007
ASR erledigt am 04.08.2007


Aus Datei lesen:

Code:
try
        {
    	  String volume = System.getProperty("user.dir");	
          String line;
          BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(volume + "/" + "breits_eingelesene_schulen.txt")));
          
          while((line = file.readLine())!= null )
          {
             finishedSchoolsCB.addItem(line); 
          }
          file.close();
        }
        catch (Exception e)
        {
           e.printStackTrace();
        }

Eingabe in der JCombobox siehe genau wie Ausgabe.

Hat jemand noch verbesserungsvorschläge?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
Q For-Schleife in String-Value Allgemeine Java-Themen 3
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
A For-Schleife Allgemeine Java-Themen 5
J Algorithmen Analyse einer Schleife Allgemeine Java-Themen 6
1 Klassen Variabel aus Schleife übergeben Allgemeine Java-Themen 8
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
F Schleife funktioniert nicht richtig Allgemeine Java-Themen 13
K For-Schleife <> oder != Operator verwenden? Allgemeine Java-Themen 2
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
D While-Schleife - if Zweig unterbrechen Allgemeine Java-Themen 1
F Zweifache For-Schleife Allgemeine Java-Themen 6
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
M While-Schleife schneller, solange die Abbruchbedingung nicht vom Schleifeninneren abhängt Allgemeine Java-Themen 3
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
RalleYTN Problem bei Schleife die durch einen 2D raum iterieren soll Allgemeine Java-Themen 1
T for - Schleife Allgemeine Java-Themen 1
J While Schleife ausführen bis Zahl = X Allgemeine Java-Themen 19
R Komplizierte Schleife Allgemeine Java-Themen 1
F Abstrakte Klasse in "For each" Schleife Allgemeine Java-Themen 1
F for-Schleife auf Kommandoebene ausgeben Allgemeine Java-Themen 9
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
P Erweiterte For Schleife Allgemeine Java-Themen 7
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
Y automatisierte for Schleife Allgemeine Java-Themen 13
B For schleife und weiter? Allgemeine Java-Themen 8
D Probleme bei for-Schleife Allgemeine Java-Themen 4
L einfache Verzinsung mit for-Schleife & Ausschluss von Werten beim Einlesen Allgemeine Java-Themen 5
N Frage zur while-Schleife Allgemeine Java-Themen 18
M for Schleife mit Swing Button abbrechen Allgemeine Java-Themen 7
M PdfPTable per for-Schleife befüllen Allgemeine Java-Themen 3
F for-Schleife mit : Allgemeine Java-Themen 5
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
W Problem mit Index in einer for-Schleife Allgemeine Java-Themen 8
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
F Foreach und for - Schleife Allgemeine Java-Themen 10
W Berechnung Durchschnitt mit Schleife Allgemeine Java-Themen 9
S for-Schleife, while-Schleife Problem Allgemeine Java-Themen 6
H Netbeans Warning bei Thread.sleep in Schleife Allgemeine Java-Themen 4
A java.lang.NullPointerException bei Schleife Allgemeine Java-Themen 3
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
R while schleife auf 3 durchgänge beschränken Allgemeine Java-Themen 6
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
x22 for-Schleife Allgemeine Java-Themen 76
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
J Schleife mit : Allgemeine Java-Themen 18
S Klassen in einer Schleife durchlaufen Allgemeine Java-Themen 11
E Schleife wird nicht ausgeführt!!! Allgemeine Java-Themen 8
C Schleife mit leerem Anweisungsblock wird trotz erfüllter Bedingung nicht verlassen Allgemeine Java-Themen 9
S Do-While Schleife bricht nicht ab Allgemeine Java-Themen 3
S Erste Schritte if-Anweisung in for- oder while-schleife umwandeln Allgemeine Java-Themen 3
K CheckBox schleife Allgemeine Java-Themen 2
D Methoden Thread Schleife Status Allgemeine Java-Themen 7
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
R In einer for Schleife bei einem Substring anfangen, wo man davor aufgehört hat Allgemeine Java-Themen 6
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
D Sterne Muster mit einer Schleife Allgemeine Java-Themen 5
Dragonfire Code Konvention for-Schleife / return Allgemeine Java-Themen 15
hdi Detail-Frage zur for-Schleife Allgemeine Java-Themen 9
J Thread pausieren, lange while-Schleife Allgemeine Java-Themen 8
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
J Erweiterte For-Schleife mit Vector Allgemeine Java-Themen 5
C Geschachtelte For-Schleife: Äußere Schleife wird nur einmal durchlaufen!? Allgemeine Java-Themen 3
W While-ESC-Schleife funktioniert nicht Allgemeine Java-Themen 3
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
H Threads.... ich will aus der While-Schleife raus Allgemeine Java-Themen 6
calzone Warum wird nicht aus der Schleife gesprungen ? Allgemeine Java-Themen 2
lacyuu Schleife hängt sich auf, wieso?? Allgemeine Java-Themen 2
ModellbahnerTT Problem: Schleife über Textdatei Allgemeine Java-Themen 5
S Wie gross ist die Laufzeit für diese Schleife?? Allgemeine Java-Themen 8
J Schachbrett mit for- oder while-Schleife Allgemeine Java-Themen 22
I For- Schleife falsch? Allgemeine Java-Themen 8
T Schleife kurzzeitig anhalten Allgemeine Java-Themen 5
V Problem in While-Schleife Allgemeine Java-Themen 3
Escorter Switch in der Schleife! Allgemeine Java-Themen 4
C Auswertung der for each schleife? Allgemeine Java-Themen 2
GilbertGrape foreach Schleife Allgemeine Java-Themen 12
J FOR-Schleife-Problem Allgemeine Java-Themen 10
G Schleife durch Button beenden Allgemeine Java-Themen 6
S Schleife funktioniert nicht Allgemeine Java-Themen 2
G Anonymen Buttons in for schleife ActionListener hinzufügen Allgemeine Java-Themen 5
T getParameter in while schleife Allgemeine Java-Themen 3
O while - Schleife unterbrechen mit break; Allgemeine Java-Themen 5
R array.length in For-Schleife verwenden? Allgemeine Java-Themen 22
V Schleife funktioniert nicht wie gewünscht Allgemeine Java-Themen 5
T Schleife im Konstruktor? Allgemeine Java-Themen 9
S Schleife mit Durchlaufrate Allgemeine Java-Themen 5
H In Testklasse Objekte erzeugen und in einer Schleife ausgebe Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben