# DefaultMutableTreeNodes als String in Textdatei speichern



## Spezi (19. Jul 2006)

Hi,

ich habe ein Programm erstellt, dass aus Basis von Abfragen einen DefaultMutableTreeNode aufbaut.
Jetzt möchte ich gerne das Ergebnis in einer simplen Textdatei speichern. Leider lässt sich dies nicht machen,
da ToString() keinen Wert ausgibt und deshalb sind meine Textdateien immer leer.

Wie kann ich die Treenodes als String abspeichern? Es sollte dann einfach eine Auflistung aller TreeNodes in der Textdatei sein.


gruß
Sebastian


----------



## André Uhres (19. Jul 2006)

Spezi hat gesagt.:
			
		

> ..ich habe ein Programm erstellt, dass aus Basis von Abfragen einen DefaultMutableTreeNode aufbaut.
> Jetzt möchte ich gerne das Ergebnis in einer simplen Textdatei speichern. Leider lässt sich dies nicht machen,
> da ToString() keinen Wert ausgibt ..


Die toString()-Methode von welcher Klasse meinst du?
Wenn du die Stringdarstellung von DefaultMutableTreeNode willst, dann bekommst du mit toString()
die Stringdarstellung seines Userobjektes:

```
DefaultMutableTreeNode newChild = new DefaultMutableTreeNode("new node"); 
System.out.println(newChild);//Ausgabe = "new node"
```


----------



## Guest (20. Jul 2006)

Danke, das funktioniert schon, aber wie kann ich den Wert des Nodes dann in eine Datei speichern?


```
try {
			   BufferedWriter out = new BufferedWriter(
					   new OutputStreamWriter(
					     new FileOutputStream( "MyFile.txt" ) ) );
			   		 out.write(System.out.println(MyNode));
					 out.close();
		   	
			   	} catch (IOException e) {}
```

leider kann er dann "write" nicht auflösen... warum funktioniert das so nicht? bzw was muss ich tun damit der obige code funktioniert?


grüße
Seb


----------



## Guest (20. Jul 2006)

die Node-Erstellung sieht bei mir so aus:


```
DefaultMutableTreeNode aufgabe = new DefaultMutableTreeNode(a);
```

ich gebe also keinen direkten String beim Treenode an, sondern das wird bei mir vorher durch eine Auswahl entschieden, wie das Node heißen soll.


----------



## André Uhres (20. Jul 2006)

out.write(MyNode.toString());


----------



## Guest (20. Jul 2006)

Danke, funktioniert super, habe das eigentlich auch schon vorher so gehabt und frage mich geradea warum das nicht geklapt hat 

das einzige problem das ich noch habe ist, dass der aufbau des tree über mehrere for schleifen erfolgt. muss ich jetzt unter jedes "add" den gesamten konstrukt 


```
try {
			   BufferedWriter out = new BufferedWriter(
					   new OutputStreamWriter(
					     new FileOutputStream( "MyFile.txt" ) ) );
		   		 		out.write(prozess.toString());
		   		 		out.newLine();
		   		 		out.close();
			   	} catch (IOException e) {}
```

oder muss ich try-catch um alle for schleifen herumbauen?


----------



## Guest (20. Jul 2006)

alles klar, habs gerade getestet, funktioniert alles einwandfrei

vielen dank für die schnelle hilfe  :toll:


----------



## Guest (20. Jul 2006)

nur noch eine kleine frage:

und zwar geht es, dass ich erst den baum in string umwandel und speichere, wenn der baum schon erstellt wurde?
denn momentan speichert er während der erstellung, dadurch verschieben sich aber die nodes, und sind nicht in der richtigen reihenfolge wie im baum.
gibts da eine möglichkeit?


----------

